一、添加druid依赖
<!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> </dependency>
二、数据源配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
# 初始化时建立物理连接的个数
initial-size: 5
# 最小连接池数量
min-idle: 5
# 最大连接池数量
max-active: 20
# 获取连接时最大等待时间,单位毫秒
max-wait: 5000
# 状态监控
filter:
stat:
enabled: true
db-type: mysql
log-slow-sql: true
slow-sql-millis: 2000
# 监控过滤器
web-stat-filter:
enabled: true
exclusions:
- "*.js"
- "*.gif"
- "*.jpg"
- "*.png"
- "*.css"
- "*.ico"
- "/druid/*"
# druid 监控页面
stat-view-servlet:
# 是否开启监控
enabled: true
# 监控路径
url-pattern: /druid/*
# 是否可以重置数据
reset-enable: false
# 登录密码
login-password: root
# 登录名
login-username: root
validation-query: "SELECT 1 FROM DUAL "
可视化页面地址: http://localhost:8080/druid/sql.html
注意,如果小伙伴引入的是springboot已经整合druid的包的话到这里的配置就可以查看druid的页面了(
<artifactId>druid-spring-boot-starter</artifactId>
) 如果引入的包是单druid的包就还要配置一个bean
@Configuration public class DruidConfiguration { @Bean public ServletRegistrationBean druidServlet() { ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*"); Map<String,String> map = new HashMap<>(); map.put("loginUsername","admin"); map.put("loginPassword","123456"); map.put("deny","192.168.47.156"); bean.setInitParameters(map); return bean; } @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>(); bean.setFilter(new WebStatFilter()); Map<String,String> map = new HashMap<>(); map.put("exclusions","*.js,*.css,/druid/*"); //拦截所有请求 bean.setUrlPatterns(Arrays.asList("/*")); bean.setInitParameters(map); return bean; } @Bean public WallFilter wallFilter(){ WallFilter wallFilter = new WallFilter(); wallFilter.setConfig(wallConfig()); return wallFilter; } @Bean public WallConfig wallConfig(){ WallConfig wallConfig = new WallConfig(); wallConfig.setMultiStatementAllow(true); //允许一次执行多条语句 wallConfig.setNoneBaseStatementAllow(true); //是否允许非以上基本语句的其他语句 wallConfig.setStrictSyntaxCheck(false); //是否进行严格的语法检测 return wallConfig; } @Bean(name="dataSource") public DataSource dataSource(){ return new DruidDataSource(); } // 配置事物管理器 @Bean(name="transactionManager") public DataSourceTransactionManager transactionManager(){ return new DataSourceTransactionManager(dataSource()); } }
这时候spring配置文件中的druid下面的所有的配置默认都不会生效,需要自己绑定相应的参数
TODO:
有些springboot项目启动打开druid可视化界面正常,但是看不了监控中的sql语句,这时候我们在jvm启动的时候配置一个命令:
-Ddruid.filters=mergeStat -Ddruid.useGlobalDataSourceStat=true
开启druid的全局监控,这样就行了!
资料转载:
https://www.cnblogs.com/lideqiang0909/p/11588729.html
https://blog.csdn.net/weixin_43943548/article/details/102991236
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter