pom依赖
<!-- druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
配置监控统计功能
@Configuration
public class DruidConfig {
/**
* 将配置文件中spring.druid.*配置到DruidDataSource中
* @param statFilter
* @return
* @throws SQLException
*/
@ConfigurationProperties(prefix="spring.druid")
@Bean(initMethod="init", destroyMethod="close")
public DruidDataSource dataSource(Filter statFilter) throws SQLException {
DruidDataSource dataSource = new DruidDataSource();
List<Filter> filters = new ArrayList<Filter>();
filters.add(statFilter());
dataSource.setProxyFilters(filters);
return dataSource;
}
/**
* 配置慢连接过滤
* @return
*/
@Bean
public Filter statFilter() {
StatFilter filter = new StatFilter();
filter.setSlowSqlMillis(5000); // 慢SQL执行时间(单位:毫秒)
filter.setLogSlowSql(true); // 是否打印出慢日志
filter.setMergeSql(true); // 是否合并
return filter;
}
/**
* 注册一个StatViewServlet
* @return
*/
@Bean
public ServletRegistrationBean<StatViewServlet> DruidStatViewServle() {
// org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<StatViewServlet>(new StatViewServlet(), "/druid/*");
// 添加初始化参数:initParams
// 白名单:
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
// 登录查看信息的账号密码
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "123456");
// 是否能够重置数据
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
}
向 application.properties 配置文件中添加配置(将原先的数据库连接配置注释起来)
#mysql
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf-8
#spring.datasource.username=root
#spring.datasource.password=123456
spring.druid.driverClassName=com.mysql.cj.jdbc.Driver
spring.druid.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf-8
spring.druid.username=root
spring.druid.password=123456
#初始化、最小、最大连接数
spring.druid.initialSize=10
spring.druid.minIdle=10
spring.druid.maxActive=20
#获取连接的最大等待时间
spring.druid.maxWait=10000
#解决mysql8小时的问题(会主动断开空闲8小时的链接)
spring.druid.validationQuery=SELECT 'x'
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.druid.timeBetweenEvictionRunsMillis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
spring.druid.minEvictableIdleTimeMillis=300000
访问监控页面
访问监控页面:http://127.0.0.1:8080/druid/index.html
登录名和密码为上述类中所设置的:admin 123456