Spring Boot學(xué)習(xí):如何使用Druid數(shù)據(jù)源

Druid概述

Druid是阿里巴巴開源的一款非常優(yōu)秀的數(shù)據(jù)庫連接池。在Java應(yīng)用程序開發(fā)中,常用的連接池還有DBCP、C3P0、Proxool等。
SpringBoot2.X 版本開始默認的是HikariCP(號稱性能最好的數(shù)據(jù)庫連接池),Druid性能好而且監(jiān)控也比較方便。
感興趣的同學(xué)可以讀一下:Druid連接池介紹
接下來我們就來講解如何集成Druid數(shù)據(jù)源

集成Druid

  • 首先是在pom.xml中添加依賴
        <!--阿里數(shù)據(jù)庫連接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <!-- Mysql驅(qū)動包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- mybatis框架 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.boot.version}</version>
        </dependency>
  • 接著在資源根目錄下添加一個配置文件,命名為application-druid.yml


    druid配置文件

    內(nèi)容如下:

spring:
  ## 數(shù)據(jù)庫配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
      url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
      username: root
      password: root
      # 初始連接數(shù)
      initialSize: 5
      # 最小連接池數(shù)量
      minIdle: 10
      # 最大連接池數(shù)量
      maxActive: 20
      # 配置獲取連接等待超時的時間
      maxWait: 60000
      # 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一個連接在池中最小生存的時間,單位是毫秒
      minEvictableIdleTimeMillis: 300000
      # 配置一個連接在池中最大生存的時間,單位是毫秒
      maxEvictableIdleTimeMillis: 900000
      # 配置檢測連接是否有效
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      webStatFilter:
        enabled: true
      statViewServlet:
        enabled: true
        # 設(shè)置白名單,不填則允許所有訪問
        allow:
        url-pattern: /druid/*
        # 控制臺管理用戶名和密碼
        login-username: root
        login-password: root
      filter:
        stat:
          enabled: true
          # 慢SQL記錄
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true

參數(shù)說明:

  • spring.datasource.druid.max-active 最大連接數(shù)
  • spring.datasource.druid.initial-size 初始化大小
  • spring.datasource.druid.min-idle 最小連接數(shù)
  • spring.datasource.druid.max-wait 獲取連接等待超時時間
  • spring.datasource.druid.time-between-eviction-runs-millis 間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
  • spring.datasource.druid.min-evictable-idle-time-millis 一個連接在池中最小生存的時間,單位是毫秒
  • spring.datasource.druid.filters=config,stat,wall,log4j 配置監(jiān)控統(tǒng)計攔截的filters,去掉后監(jiān)控界面SQL無法進行統(tǒng)計,’wall’用于防火墻

這樣就可以最簡單的啟動了


start

有人可能會遇到如下的錯誤信息:


error

缺少了類似mybatis、spring-data-jpa這類的數(shù)據(jù)包,Druid需要依賴這些才能啟動

在瀏覽器輸入:http://localhost:8080/druid/login.html,出現(xiàn)Druid監(jiān)控登錄框,用戶名和密碼為配置文件里的內(nèi)容

LOGIN

index

在這里可以查看各類數(shù)據(jù)的監(jiān)控信息,幫助系統(tǒng)的優(yōu)化。

總結(jié)

這里只是做了最簡單的集成,在后續(xù)的項目中使用的話會另起一篇深入探討。

項目地址

https://gitee.com/kaixinshow/springboot-note

返回【Spring Boot學(xué)習(xí)】目錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容