最近,在使用阿里巴巴的 druid 1.1.0版本上线后发现默认开启了监控,而且还是可以公开访问,有泄露项目信息的风险,网上试了几个关闭的方法都没起作用,这个东西巨坑:
1、在配置文件试过了各种各样的方式均无法关闭druid,配置如下:
1、
spring:
datasource:
druid:
web-stat-filter:
enabled: false
stat-view-servlet:
enabled: false
2、
spring:
datasource:
druid:
web-stat-filter:
enabled: false
stat-view-servlet:
enabled: false
filter:
config:
enabled: false
3、
spring:
datasource:
druid:
WebStatFilter:
enabled: false
StatViewServlet:
enabled: false
以上方法试过均无效,然后再源码中看到了一些东西
com.alibaba.druid.spring.boot.autoconfigure.DruidWebStatFilterConfiguration
最后的解决方案
- 直接不把drud注入到bean里面
@Configuration
public class DruidConfiguration {
/* @Bean
public ServletRegistrationBean<?> startViewServlet(){
}*/
}
- 2、将druid替换成 hikari 连接池,SpringBoot 默认使用的连接池就是 hikari。
步骤:
1、将原有的druid的删除掉,使用以下的配置
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/a?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
password: root
username: root
hikari:
# 最小空闲连接数量
minimum-idle: 10
# 连接池最大连接数,默认是10
maximum-pool-size: 20
# 空闲连接存活最大时间,默认600000(10分钟)
idle-timeout: 5000000
# 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
max-lifetime: 540000
# 数据库连接超时时间,默认30秒,即30000
connection-timeout: 60000
connection-test-query: SELECT 1
#此属性控制从池返回的连接的默认自动提交行为,默认值:true
auto-commit: true
更为详细的配置信息可以查看:https://github.com/brettwooldridge/HikariCP
关注我: