我们在 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"} ] }
|