一:集成Druid
1.导入pom依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.8</version> </dependency>
2.配置yml文件
type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 # 初始化大小 min-idle: 10 # 最小连接数 max-active: 20 # 最大连接数 max-wait: 60000 # 获取连接时的最大等待时间 min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的 时间,单位是毫秒 time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关 闭的空闲连接,单位是毫秒 filters: stat # 配置扩展插件:stat-监控 统计,log4j-日志,wall-防火墙(防止SQL注入),去掉后,监控界面的sql无法统计 ,wall validation-query: SELECT 1 # 检测连接是否有效的 SQL语 句,为空时以下三个配置均无效 test-on-borrow: true # 申请连接时执行 validationQuery检测连接是否有效,默认true,开启后会降低性能 test-on-return: true # 归还连接时执行 validationQuery检测连接是否有效,默认false,开启后会降低性能 test-while-idle: true # 申请连接时如果空闲时间大 于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效,默认false,建议开 启,不影响性能 stat-view-servlet: enabled: true # 是否开启 StatViewServlet allow: 127.0.0.1 # 访问监控页面 白名单,默认 127.0.0.1 deny: 192.168.56.1 # 访问监控页面 黑名单 login-username: admin # 访问监控页面 登陆账号 login-password: 123 # 访问监控页面 登陆密码 filter: stat: enabled: true # 是否开启 FilterStat,默 认true log-slow-sql: true # 是否开启 慢SQL 记录,默 认false slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000,单位:毫秒 merge-sql: false # 合并多个连接池的监控数 据,默认false
3.编写Controller层
package com.sg.code.controller; import com.sg.code.service.StudentService; import com.sg.code.util.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpRequest; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestController @RequestMapping("stu") public class StudentController { @Autowired private StudentService service; @GetMapping("/all") public Object index(HttpServletRequest request){ PageBean pageBean = new PageBean(); pageBean.setRequest(request); return service.findPager(pageBean); } }
4.运行结果
登录Druid监控地址
注:账号密码是在yml文件中定义的
里面记录的是Druid里使用到的sql
二:集成Redis
1.导入pom依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.添加yml文件配置
redis: database: 10 #数据库索引 host: 47.100.191.44 #主机位置 port: 6379 #端口 password: xiaoli_redis #密码 jedis: pool: max-active: 8 #最大连接数 max-wait: -1 #最大阻塞等待时间(负数表示没限制) max-idle: 8 #最大空闲 min-idle: 0 #最小空闲 timeout: 10000 #连接超时时间
3.引入Cacheable
注:Cacheable 用来声明方法是可缓存的。将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方 法。直接从缓存中取值
@Cacheable(cacheNames = "aa",cacheManager = "cacheManager")
4.执行测试类
这个时候就没有sql语句,因为直接是从缓存里面取,但当我们取别的内容时还是会有sql语句因为内容变了,缓存里面没有就会重新调用sql
5.Cacheable注解的使用
@Cacheable(key="#pageBean.page")当设置key之后运行虽然内容不同但也不会在控制台显示
在key里面也能调用方法
6.CachePut注解的使用
作用:每次查询都会进入数据库,然后把值给予缓存
7.CacheEvict注解的使用
作用:主要针对方法配置,能够根据一定的条件对缓存进行清空