声明

  1. 使用的Spring Boot版本为2.1.0 RELEASE
  2. 使用的druid为druid-spring-boot-starter版本为1.1.9
  3. 这个集成是按照github上druid spring boot的示例来集成的

开始

添加依赖

parent-pom

<!-- spring boot 对druid的支持 -->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>${druid.version}</version>
</dependency>

target-pom

<!-- spring boot 对druid的支持 -->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
</dependency>

properties文件配置

application.properties

#JDBC Config
spring.datasource.url=...
spring.datasource.username=...
spring.datasource.password=...
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#Druid Config
#启用连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#连接池基础属性配置
spring.datasource.druid.initial-size=2
spring.datasource.druid.max-active=30
spring.datasource.druid.min-idle=2
spring.datasource.druid.max-wait=1234
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=5
spring.datasource.druid.validation-query=select 1
spring.datasource.druid.validation-query-timeout=1
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.test-on-return=true
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=10000
spring.datasource.druid.min-evictable-idle-time-millis=30001
spring.datasource.druid.async-close-connection-enable=true
#设置filter
#最后一个可以配置log4j或者slf4j,依赖了哪一个就写哪一个
spring.datasource.druid.filters=config,stat,wall,slf4j
#开启慢查询
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=2000

#druid spring监控 配置切面的包
spring.datasource.druid.aop-patterns=com.demo.service.*

写Controller(这一步可要可不要)

/**
 * 该方法与Spring Boot集成Druid没有关系,主要是为Spring Boot获取Druid JSON数据做的预留接口
 * @author William
 *
 */
@RestController
public class DruidStatController {
    @GetMapping("/durid/stat")
    public Object druidStat(){
        // DruidStatManagerFacade#getDataSourceStatDataList 该方法可以获取所有数据源的监控数据,除此之外 DruidStatManagerFacade 还提供了一些其他方法,你可以按需选择使用。
        return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
    }
}

启动项目

运行Spring Boot 项目

访问druid

http://127.0.0.1:8080/druid

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐