我们在 Spring Boot 项目中通过 Druid Spring Boot Starter 来集成 Druid 数据库连接池和监控。
加入依赖 添加 druid-spring-boot-starter
maven 依赖。
截止 Nov, 2019, 最新版本是 1.1.21。
1 2 3 4 5 <dependency > <groupId > com.alibaba</groupId > <artifactId > druid-spring-boot-starter</artifactId > <version > 1.1.21</version > </dependency >
添加配置 在 application.yml 配置文件里面添加如下必填信息。注:H2 内存数据库啥也不填都可以。
1 2 3 4 spring.datasource.druid.url= # 或spring.datasource.url= spring.datasource.druid.username= # 或spring.datasource.username= spring.datasource.druid.password= # 或spring.datasource.password= spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name=
1 2 3 4 5 6 7 8 9 10 11 12 spring: # jdbc配置 datasource: url: jdbc:mysql://localhost:3306/springboot-mybatis-plus?useUnicode=true&characterEncoding=utf8&useSSL=false username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver druid: initial-size: 5 max-active: 5 min-idle: 5
如果使用 MySQL,还需要添加 MySQL 驱动依赖。
1 2 3 4 <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > </dependency >
不然就会报错 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
。
还有添加 jdbc starter。
1 2 3 4 5 6 7 8 9 10 <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-jdbc</artifactId > <exclusions > <exclusion > <artifactId > HikariCP</artifactId > <groupId > com.zaxxer</groupId > </exclusion > </exclusions > </dependency >
不然就会报错:java.lang.ClassNotFoundException: org.springframework.dao.DataAccessException
。
当然,如果使用 mybatis plus 这类框架,可以直接添加 mybatis-plus-boot-starter
,它也会依赖 jdbc 的。
1 2 3 4 5 6 7 8 9 10 11 <dependency > <groupId > com.baomidou</groupId > <artifactId > mybatis-plus-boot-starter</artifactId > <version > 3.3.1.tmp</version > <exclusions > <exclusion > <artifactId > HikariCP</artifactId > <groupId > com.zaxxer</groupId > </exclusion > </exclusions > </dependency >
值得注意的是,默认会添加 HikariCP 的依赖,我们使用了 Druid 后,需要把 HikariCP 排除在外。
最后,我们可以打印看看 dataSource:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { CreateTime: "2020-04-06 15:04:34" , ActiveCount: 0 , PoolingCount: 5 , CreateCount: 5 , DestroyCount: 0 , CloseCount: 0 , ConnectCount: 0 , Connections: [ { ID: 1011276990 , ConnectTime: "2020-04-06 15:04:34" , UseCount: 0 , LastActiveTime: "2020-04-06 15:04:34" } , { ID: 1750563752 , ConnectTime: "2020-04-06 15:04:34" , UseCount: 0 , LastActiveTime: "2020-04-06 15:04:34" } , { ID: 285781448 , ConnectTime: "2020-04-06 15:04:34" , UseCount: 0 , LastActiveTime: "2020-04-06 15:04:34" } , { ID: 145329976 , ConnectTime: "2020-04-06 15:04:34" , UseCount: 0 , LastActiveTime: "2020-04-06 15:04:34" } , { ID: 33558975 , ConnectTime: "2020-04-06 15:04:34" , UseCount: 0 , LastActiveTime: "2020-04-06 15:04:34" } ] }