日常开发过程中,我们很少会直接创建、关闭数据库连接,而是通过数据库连接池来获取数据库连接,即所谓的池化技术。这里重点介绍下在Spring Boot环境下如何集成Druid数据库连接池
POM依赖
向POM添加Druid数据库连接池的Maven依赖
1 2 3 4 5 6 7 8 9 10
| <dependencies> ... <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.22</version> </dependency> ... </dependencies>
|
基本配置
在Spring Boot配置文件中,添加Druid所需的相关配置项。具体配置项及释义见如下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver spring.datasource.druid.url=jdbc:mysql://localhost:3306/myMybatisDemo?useSSL=false spring.datasource.druid.username=root spring.datasource.druid.password=123456
spring.datasource.druid.default-transaction-isolation=4
spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
spring.datasource.druid.validation-query=select 'x'
spring.datasource.druid.test-on-return=false
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.pool-prepared-statements=false
spring.datasource.druid.filters=stat
|
统计监控
Druid提供了很多的功能拓展,其中最重要地莫过于对DB、SQL语句的监控统计。这里给出Druid监控所需的相关配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.reset-enable=false
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=Aaron spring.datasource.druid.stat-view-servlet.login-password=123456
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,192.168.0.69 spring.datasource.druid.stat-view-servlet.deny=192.168.22.33,192.168.0.69
|
对于监控页面的访问权限控制,需要注意的是,如果一个IP同时存在于白名单、黑名单当中,则黑名单优先级高于白名单。例如对于上面的配置示例来说,只有127.0.0.1的IP可以访问监控页面。而192.168.0.69的IP则无法访问,因为其不仅存在于白名单也存在于黑名单中。至此就可以通过/druid路径来访问监控页面了,监控页面如下所示