一、依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
二、属性
spring:
datasource:
# 配置当前要使用的数据源的操作类型
type: com.alibaba.druid.pool.DruidDataSource
# 配置MySQL的驱动程序类
driver-class-name: org.gjt.mm.mysql.Driver
# 数据库连接地址
url: jdbc:mysql://localhost:3306/mldn
# 数据库用户名
username: root
# 数据库连接密码
password: root
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
# 数据库连接池的最小维持连接数
minIdle: 5
# 初始化提供的连接数
initialSize: 5
# 数据库连接池的最大维持连接数
maxActive: 20
# 等待连接获取的最大超时时间
maxWait: 200
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 校验SQL,Oracle配置 spring.datasource.validationQuery=SELECT 1 FROM DUAL,如果不配validationQuery项,则下面三项配置无用
validationQuery: SELECT 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties=druid.stat.mergeSql=true
# 合并多个DruidDataSource的监控数据
useGlobalDataSourceStat: true
三、config
import javax.sql.DataSource
import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.boot.web.servlet.FilterRegistrationBean
import org.springframework.boot.web.servlet.ServletRegistrationBean
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import com.alibaba.druid.pool.DruidDataSource
import com.alibaba.druid.support.http.StatViewServlet
import com.alibaba.druid.support.http.WebStatFilter
@Configuration
public class DruidConfig {
@Bean
public ServletRegistrationBean druidServlet() {
// 主要实现WEB监控的配置处理
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
new StatViewServlet(), "/druid/*")
//白名单
servletRegistrationBean.addInitParameter("allow",
"127.0.0.1,192.168.128.242")
// 黑名单
servletRegistrationBean.addInitParameter("deny", "192.168.128.28")
// 用户名
servletRegistrationBean.addInitParameter("loginUsername", "admin")
// 密码
servletRegistrationBean.addInitParameter("loginPassword", "admin")
// 是否可以重置数据源
servletRegistrationBean.addInitParameter("resetEnable", "false")
return servletRegistrationBean
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean()
filterRegistrationBean.setFilter(new WebStatFilter())
// 添加过滤规则,所有请求进行监控处理
filterRegistrationBean.addUrlPatterns("/*")
// 添加不需要忽略的格式信息
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*")
return filterRegistrationBean
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
return new DruidDataSource()
}
}
四、访问
http://localhost:8080/druid/