Druid是由阿里巴巴推出的数据库连接池。它结合了C3P0、DBCP、PROXOOL等数据库连接池的优点。之所以从众多数据库连接池中脱颖而出,还有一个重要的原因就是它包含控制台,很方便的帮助我们实现对于sql执行的监控。
添加依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency>
修改配置文件application.yml
1. spring: 2. datasource: 3. # 使用阿里的Druid连接池 4. type: com.alibaba.druid.pool.DruidDataSource 5. driver-class-name: com.mysql.cj.jdbc.Driver 6. # 填写你数据库的url、登录名、密码和数据库名 7. url: jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai 8. username: root 9. password: root 10. druid: 11. # 连接池的配置信息 12. # 初始化大小,最小,最大 13. initial-size: 5 14. min-idle: 5 15. maxActive: 20 16. # 配置获取连接等待超时的时间 17. maxWait: 60000 18. # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 19. timeBetweenEvictionRunsMillis: 60000 20. # 配置一个连接在池中最小生存的时间,单位是毫秒 21. minEvictableIdleTimeMillis: 300000 22. validationQuery: SELECT 1 23. testWhileIdle: true 24. testOnBorrow: false 25. testOnReturn: false 26. # 打开PSCache,并且指定每个连接上PSCache的大小 27. poolPreparedStatements: true 28. maxPoolPreparedStatementPerConnectionSize: 20 29. # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 30. filters: stat,wall,slf4j 31. # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 32. connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 33. # 配置DruidStatFilter 34. web-stat-filter: 35. enabled: true 36. url-pattern: "/*" 37. exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*" 38. # 配置DruidStatViewServlet 39. stat-view-servlet: 40. url-pattern: "/druid/*" 41. # IP白名单(没有配置或者为空,则允许所有访问) 42. allow: 127.0.0.1,192.168.8.109 43. # IP黑名单 (存在共同时,deny优先于allow) 44. deny: 192.168.1.188 45. # 禁用HTML页面上的“Reset All”功能 46. reset-enable: false 47. # 登录名 48. login-username: admin 49. # 登录密码 50. login-password: 123456
代码测试
访问监控页面