1.druid数据源
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。
Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
同时Druid不仅仅是一个数据库连接池,它包括四个部分:
Druid是一个JDBC组件,它包括三个部分:
- 基于Filter-Chain模式的插件体系。
- DruidDataSource 高效可管理>的数据库连接池。
- SQLParser
2.配置druid
1.创建配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/db1 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource # 数据源其他配置 initialSize : 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validaionQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true # 配置监控统计拦截的filters 去掉后监控界面sql无法统计,‘wall’用于防火墙 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true,druid.stat.slowSqlMills=500 |
从initialSize开始往后的在DataSourceProperties中并无属性,所以这些数据默认是不起作用的,是加载不到druid数据源中,在测试类进行debug测试:
这时候需要我们手动添加配置,创建配置类进行配置
1 2 3 4 5 |
@Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource druid(){ return new DruidDataSource(); } |
这时候在debug测试:
这时候属性加添加到数据源中了。
然后我们在配置servlet filter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
@Bean public ServletRegistrationBean myServlet(){ ServletRegistrationBean 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","127.0.0.1"); //是否能够重置数据. bean.addInitParameter("resetEnable","false"); bean.setInitParameters(initParams); return bean; } @Bean public FilterRegistrationBean myFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String,String> initParams = new HashMap<>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.addUrlPatterns("/*"); return bean; } |
然后在浏览器中访问/druid:
然后输入账号密码即可进入了。
转自:https://www.jianshu.com/p/bec406b26ce3