pom依赖

  1. <!-- druid-spring-boot-starter -->
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>druid-spring-boot-starter</artifactId>
  5. <version>1.1.17</version>
  6. </dependency>

配置监控统计功能

  1. @Configuration
  2. public class DruidConfig {
  3. /**
  4. * 将配置文件中spring.druid.*配置到DruidDataSource中
  5. * @param statFilter
  6. * @return
  7. * @throws SQLException
  8. */
  9. @ConfigurationProperties(prefix="spring.druid")
  10. @Bean(initMethod="init", destroyMethod="close")
  11. public DruidDataSource dataSource(Filter statFilter) throws SQLException {
  12. DruidDataSource dataSource = new DruidDataSource();
  13. List<Filter> filters = new ArrayList<Filter>();
  14. filters.add(statFilter());
  15. dataSource.setProxyFilters(filters);
  16. return dataSource;
  17. }
  18. /**
  19. * 配置慢连接过滤
  20. * @return
  21. */
  22. @Bean
  23. public Filter statFilter() {
  24. StatFilter filter = new StatFilter();
  25. filter.setSlowSqlMillis(5000); // 慢SQL执行时间(单位:毫秒)
  26. filter.setLogSlowSql(true); // 是否打印出慢日志
  27. filter.setMergeSql(true); // 是否合并
  28. return filter;
  29. }
  30. /**
  31. * 注册一个StatViewServlet
  32. * @return
  33. */
  34. @Bean
  35. public ServletRegistrationBean<StatViewServlet> DruidStatViewServle() {
  36. // org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
  37. ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<StatViewServlet>(new StatViewServlet(), "/druid/*");
  38. // 添加初始化参数:initParams
  39. // 白名单:
  40. servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
  41. // 登录查看信息的账号密码
  42. servletRegistrationBean.addInitParameter("loginUsername", "admin");
  43. servletRegistrationBean.addInitParameter("loginPassword", "123456");
  44. // 是否能够重置数据
  45. servletRegistrationBean.addInitParameter("resetEnable", "false");
  46. return servletRegistrationBean;
  47. }
  48. }

向 application.properties 配置文件中添加配置(将原先的数据库连接配置注释起来)

  1. #mysql
  2. #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  3. #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf-8
  4. #spring.datasource.username=root
  5. #spring.datasource.password=123456
  6. spring.druid.driverClassName=com.mysql.cj.jdbc.Driver
  7. spring.druid.url=jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf-8
  8. spring.druid.username=root
  9. spring.druid.password=123456
  10. #初始化、最小、最大连接数
  11. spring.druid.initialSize=10
  12. spring.druid.minIdle=10
  13. spring.druid.maxActive=20
  14. #获取连接的最大等待时间
  15. spring.druid.maxWait=10000
  16. #解决mysql8小时的问题(会主动断开空闲8小时的链接)
  17. spring.druid.validationQuery=SELECT 'x'
  18. #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  19. spring.druid.timeBetweenEvictionRunsMillis=60000
  20. #配置一个连接在池中最小生存的时间,单位是毫秒
  21. spring.druid.minEvictableIdleTimeMillis=300000

访问监控页面

  1. 访问监控页面:http://127.0.0.1:8080/druid/index.html
  2. 登录名和密码为上述类中所设置的:admin 123456