Springboot学习07-数据源Druid
关键字
Druid
前言
学习笔记
正文
1-Druid是什么
Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。
2-Springboot引入Druid
2-1-maven依赖
com.alibaba druid 1.1.8
2-2-application.propertites配置
# 数据库连接url地址spring.datasource.url=jdbc:mysql://IP:3306/demo# 数据库连接用户名和密码spring.datasource.username=wbcfqspring.datasource.password=wbcfq# 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClassspring.datasource.driver-class-name=com.mysql.jdbc.Driver# 使用druid数据源spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# 初始化大小,最小,最大spring.datasource.initialSize=10spring.datasource.minIdle=10spring.datasource.maxActive=30# 配置获取连接等待超时的时间spring.datasource.maxWait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.minEvictableIdleTimeMillis=300000spring.datasource.validationQuery=SELECT 1 FROM DUALspring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=false# 打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.poolPreparedStatements=true# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙spring.datasource.filters=stat,wall,log4jspring.datasource.maxPoolPreparedStatementPerConnectionSize=20# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 合并多个DruidDataSource的监控数据spring.datasource.useGlobalDataSourceStat=true
2-3-配置Druid的监控(servlet和filter)
@Configurationpublic class DruidConfiguration { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid(){ return new DruidDataSource(); } //配置 //1、配置一个管理后台的Servlet @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); MapinitParams = new HashMap<>(); initParams.put("loginUsername","admin");//后台登陆账号 initParams.put("loginPassword","admin");//后台登陆密码 initParams.put("allow","");//默认就是允许所有访问 //initParams.put("deny","192.168.31.92");//禁止访问的IP bean.setInitParameters(initParams); return bean; } //2、配置一个web监控的filter @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map initParams = new HashMap<>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; }}
2-5-实际效果
参考文献
1-
2-