SpringBoot 集成 Druid
Posted gangbalei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot 集成 Druid相关的知识,希望对你有一定的参考价值。
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。更多资料说明大家可以查看官网Github:https://github.com/alibaba/druid
Druid官方已经编写好了相关的启动器,我们可以引入启动器,然后进行相关配置就可以使用Druid的各种功能。如果只是引入Druid依赖包,没有引入Druid的SpringBoot启动器依赖,这时如果要实现使用Druid的,需要自己实现数据库连接池对象(DataSource),然后将配置信息注入到实现的连接池对象中。另外如果要使用Druid的监控功能,还需要编写Druid内置监控页面StatViewServlet对象和WebViewFilter到Spring容器中。
这里的话使用Druid启动器进行集成。
1. 在 Spring Boot 项目中加入druid-spring-boot-starter
依赖
Maven
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</version> </dependency>
Gradle
compile ‘com.alibaba:druid-spring-boot-starter:1.1.17‘
2. 添加基本配置
在SpringBoot中配置文件中加入如下配置,就可以使用Druid连接池了
spring.datasource.url=jdbc:mysql://192.168.56.102:3306/demos?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
上面两步就可以在项目中简单使用Druid连接池了,下面是数据库连接池扩展配置和监控配置
3. 添加数据库连接扩展配置
# 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置获取连接等待超时的时间 spring.datasource.maxWait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
4. 添加Druid的监控配置
# 配置多个使用英文逗号隔开,常用的有stat,wall,loj4j,slf4j等
spring.datasource.druid.filters=stat # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=123456 spring.datasource.druid.stat-view-servlet.allow=127.0.0.1 # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter 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/*‘
配置好后,项目启动之后,就可以打开Druid的监控界面:http://localhost:8080/druid/index.html 会要求你进行登录,上面设置的是admin/123456
登录后来到监控界面,可以查看数据路连接池信息,请求信息,SQL执行记录
以上是关于SpringBoot 集成 Druid的主要内容,如果未能解决你的问题,请参考以下文章