Spring Boot 使用 Druid 连接池

简介

Spring Boot 1.x 版本中,默认使用的数据库连接池为:Tomcat JDBC;到了 Spring Boot 2.x,也切换到了更高性能的 HikariCP 连接池。

不过上面这两个都不是今天的重点,下面介绍的是国内较为流行的 Druid ,一款为监控而生的数据库连接池,由阿里巴巴数据库事业部出品。Druid 连接池内置了强大的监控功能,该特性不影响性能。功能强大,能防止 SQL 注入,内置 Logging 能诊断 hack 应用行为。

Spring Boot 使用 Druid 连接池
数据库连接池对比

早期使用 Druid 时候还得配合着 Spring 来使用,一堆的 XML 配置文件,那可真叫是非常的不便。好在,Spring Boot 的全面推广,使得 Web 开发显得越来越高效简单,各种自带的、第三方的 Starter 也随之而生,约定大于配置,这不仅仅是简化了开发人员的上手复杂度,更是让整个体系走向越来越自动化、智能化。

使用

Druid 官方同样提供了相应的 Spring Boot Starter ,旨在帮助开发者在 Spring Boot 项目中轻松集成 Druid 数据库连接池和监控。

  1. 加入依赖
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
        <!-- 引入 Druid , 排除 HikariCP -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.16</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>HikariCP</artifactId>
                    <groupId>com.zaxxer</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>
  1. 添加配置
spring:
  jpa:
    open-in-view: false
  datasource:
    druid:
      ##### JDBC 配置(内嵌数据库可省略)
      #      # 或spring.datasource.url=
      #      url:
      #      # 或spring.datasource.username=
      #      username:
      #      # 或spring.datasource.password=
      #      password:
      #      # 或spring.datasource.driver-class-name=
      #      driver-class-name:

      ##### 连接池配置
      min-idle: 5
      max-active: 5
      max-wait: 5000
      initial-size: 5
      validation-query: "select 'x'"
      test-while-idle: true
      filters: conn,config,stat,wall,slf4j

      ##### 监控配置
      web-stat-filter:
        enabled: true
      stat-view-servlet:
        enabled: true
        # http://localhost:8080/druid/login.html
        login-username: admin
        login-password: admin
  1. 启动 Application

访问 http://localhost:8080/druid/login.html ,输入登录用户名和密码 admin,就可以查看 Druid 提供的所有监控功能。

Spring Boot 使用 Druid 连接池
Druid Monitor

更多资料可参考下方链接

Druid wiki
Druid Spring Boot Starter

示例源码
欢迎关注我的个人公众号:超级码里奥
如果这对您有帮助,欢迎点赞和分享,转载请注明出处