文章目录
- Springboot 整合 druid
- druid的优势
- 配置参数
- 使用
- 整合 Druid
- 配置数据源
- 配置参数
- 绑定配置参数
- 配置监控页面
- 配置拦截器
Springboot 整合 druid
druid的优势
- 可以很好的监控 DB 池连接 和 SQL 的执行情况
- 可以给数据库密码加密
- 可以很方便的编写JDBC插件
配置参数
使用
整合 Druid
导入 Druid 数据源依赖
配置数据源
配置参数
spring:datasource:#数据源基本配置username: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_crudtype: com.alibaba.druid.pool.DruidDataSource#数据源其他配置druid:#配置初始化大小、最小、最大线程数initialSize: 5minIdle: 5#CPU核数+1,也可以大些但不要超过20,数据库加锁时连接过多性能下降maxActive: 20# 最大等待时间,内网:800,外网:1200(三次握手1s)maxWait: 60000timeBetweenEvictionRunsMillis: 60000#配置一个连接在池中最大空间时间,单位是毫秒minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 testWhileIdle: true# 设置从连接池获取连接时是否检查连接有效性,true检查,false不检查testOnBorrow: true# 设置从连接池归还连接时是否检查连接有效性,true检查,false不检查testOnReturn: true#可以支持PSCache(提升写入、查询效率)poolPreparedStatements: true#配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filters: stat,wall,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
绑定配置参数
配置监控页面
配置拦截器
@Configuration
public class DruidConfig {@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource getMyDruidDataSource(){return new DruidDataSource();}//配置Druid的监控//1.配置一个管理后台的Servlet@Beanpublic ServletRegistrationBean statViewServlet(){// 记得加上"/druid/*",否则在进行登录页面的重定向过多而无法访问的问题(记得在Google浏览器才会报这个错)ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");Map<String,String> initParams = new HashMap<>();initParams.put("loginUsername","admin");initParams.put("loginPassword","123456");//默认是允许所有访问//initParams.put("allow","");
// initParams.put("deny","192.168.31.30");bean.setInitParameters(initParams);return bean;}//2.配置一个web监控的filter@Beanpublic FilterRegistrationBean webStatFilter(){FilterRegistrationBean bean = new FilterRegistrationBean();bean.setFilter(new WebStatFilter());Map<String,String> initParams = new HashMap<>();//配置拦截时需要排除的请求initParams.put("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");bean.setInitParameters(initParams);bean.setUrlPatterns(Arrays.asList("/*"));return bean;}
}