Spring-boot 入门使用(集成redis,mybatisPlus)
2018-11-30 19:54
399 查看
spring-boot配置
-
只需要简单的依赖配置
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.17.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>
-
main方法
- @RequestMapping注解返回的是一个跳转路径,需再加一个@ResponseBody转成json对象
- @RestController注解,可以换成@Controller注解 1.2配合使用
- 注意@SpringBootApplication注解只会扫描相同包或者子包的类下的注解
@RestController @SpringBootApplication public class Example { @RequestMapping("/") String home() { return "Hello World!"; } @RequestMapping("/mp") HashMap home1() { HashMap hm = new HashMap(); hm.put("id", 99); return hm; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
- 效果如下
@Controller @SpringBootApplication public class Example { @Autowired private User user; @ResponseBody @RequestMapping("/") String home() { return "Hello World!"; } @ResponseBody @GetMapping("/mp") HashMap home1() { HashMap hm = new HashMap(); hm.put("id", 99); return hm; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } }
-
@RestController 注解自带以下注解
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody
Spring Boot 优于Spring mvc ,SSM,SSH 的一个亮点就是他使用了好多的注解。
- @Autowired
这个注解的作用是将其他的类,接口引入,类似于之前的类的初始化等,用这个注解,类中或接口的方法就可以直接调用了。
这个注解和@Inject,@Resource 作用类似,都能注入类, 接口.
- @RestController
这个注解的作用是告诉Servlet 这个类是一个控制器,当前台调用后台的时候,根据名称就能找到这个控制类,然后去执行里面的方法。他类似于Spring mvc 中的@Controller,他继承自@Controller。
- @RequestMapping 和他的衍生品 @GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PutMapping
这个注解的作用是当前台界面调用Controller处理数据时候告诉控制器怎么操作。get 对应查询,put 对应修改,post 对应增加, delete 对应删除。
- @RequestParam,@PathParm,@PathVariable和@RequestBody
这四个注解都是用来传参数的,第一个是用来传递http://localhost:8080/page1?id=1 这种用的。第二个和第三个用来处理http://localhost:8080/page1/1这种传参数的,后面这个是用来传对象用的。
集成redis、mysql时需配置application.properties文件
- application.properties
spring.redis.host = 192.168.0.246 spring.datasource.url=jdbc:mysql://localhost/accounts spring.datasource.username=root spring.datasource.password=ps123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.stat-view-servlet.login-username=zjh spring.datasource.druid.stat-view-servlet.login-password=zjh123456 spring.datasource.druid.filter.stat.slow-sql-millis=2000
spring-boot集成redis
@RestController public class RedisController { @Autowired StringRedisTemplate srt; @GetMapping("/redis") public String redis() { srt.boundValueOps("mysex").set("男"); return srt.boundValueOps("mysex").get(); } }
spring-boot集成mysql
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
- 代码如下
@RestController public class JdbcController { @Autowired JdbcTemplate jt; @GetMapping("/jdbc") public List<Map<String, Object>> redis() { List<Map<String, Object>> query = jt.query("select * from emp_t", new ColumnMapRowMapper()); return query; } }
集成连接池(相当于spring配置,基于springMVC,用注解实现)
- 约定大于配置
- 使用value注解时,需配置el表达式 #{} ,不然注解取值字符串
- 这是springMVC玩法,依赖jar包,spring-boot中没有
import java.sql.SQLException; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; /** * 可以理解为这个类是spring的配置文件 * <bean id ="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> * *@author *@date 2018年11月27日下午8:18:36 * */ @Configuration public class ConfigBin { @Value("${spring.datasource.driver-class-name}") private String className; @Value("${spring.datasource.url}") private String url; @Value("${spring.datasource.username}") private String usname; @Value("${spring.datasource.password}") private String pass; @Bean public DataSource dataSource() { DruidDataSource dt = new DruidDataSource(); dt.setUrl(url); dt.setDriverClassName(className); dt.setPassword(pass); dt.setUsername(usname); return dt; } }
-
druid 手动监听sql语句 将下列代码放置ConfigBin类中,只监控服务产生到结束
-
设置阀值 spring.datasource.druid.filter.stat.slow-sql-millis=2000
-
手动引入jar包
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</version> </dependency>
@Bean public ServletRegistrationBean statViewServlet(){ //创建servlet注册实体 ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //设置ip白名单 servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //设置ip黑名单,如果allow与deny共同存在时,deny优先于all 4000 ow servletRegistrationBean.addInitParameter("deny","192.168.0.19"); //设置控制台管理用户 servletRegistrationBean.addInitParameter("loginUsername","druid"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否可以重置数据 servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } @Bean public FilterRegistrationBean statFilter(){ //创建过滤器 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //设置过滤器过滤路径 filterRegistrationBean.addUrlPatterns("/*"); //忽略过滤的形式 filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; }
redis自带sql监听只需要引入下列jar包
- 在application.properties 文件中添加 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- 设置登录账号密码
spring.datasource.druid.stat-view-servlet.login-username=zjh
spring.datasource.druid.stat-view-servlet.login-password=zjh123456
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency>
更多druid玩法
相关文章推荐
- Spring Boot(五):集成Redis和使用Redis实现缓存共享
- 在spring boot中使用redis(一):集成redis
- SpringBoot 入门教程:集成mybatis,redis
- SpringBoot 入门教程:集成mybatis,redis
- 使用SpringBoot搭建小型项目,集成mybatis,redis,swagger2,并部署在外部容器中。
- springboot入门(三)-- springboot集成mybatis及mybatis generator工具使用
- SpringBoot2.0集成Redis的日常使用
- SpringBoot入门(三)—— redis的使用
- springboot2.0集成redis使用
- SpringBoot 入门教程:集成mybatis,redis
- 关于Spring boot 与 redis 的集成,以及Spring中redis的使用
- springBoot系列教程03:redis的集成及使用
- Spring-Boot (四) cache/ehcache/redis-cache集成使用
- 排忧解难之使用Spring Boot与Redis集成报错 NoClassDefFoundError...RedisConnectionFactory
- Springboot使用redis
- Spring Boot使用redis做数据缓存
- Spring Boot中使用Redis数据库
- spring boot 自学笔记(三) Redis集成—RedisTemplate
- 2 Springboot中使用redis,配置redis的key value生成策略
- Spring Boot使用Redis进行消息的发布订阅