spring boot 配置 druid

前言

項目中,有時我們需要使用一些數據庫連接池,這里我們可以使用阿里巴巴出品的druid連接池管理。git地址 https://github.com/alibaba/druid

簡介

Druid是Java語言中最好的數據庫連接池。Druid能夠提供強大的監(jiān)控和擴展功能。(官網這樣講的 ...)

依賴引入

首先我們引入相關依賴,目前最新版本為1.1.2

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.2</version>
</dependency>

配置文件

spring.datasource.url= 
spring.datasource.username=
spring.datasource.password=
#...其他配置(可選,不是必須的)

配置詳細的屬性

  • jdbc配置
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=
  • 連接池配置
spring.datasource.druid.initial-size=
spring.datasource.druid.max-active=
spring.datasource.druid.min-idle=
spring.datasource.druid.max-wait=
spring.datasource.druid.pool-prepared-statements=
spring.datasource.druid.max-pool-prepared-statement-per-connection-size= 
spring.datasource.druid.max-open-prepared-statements= #和上面的等價
spring.datasource.druid.validation-query=
spring.datasource.druid.validation-query-timeout=
spring.datasource.druid.test-on-borrow=
spring.datasource.druid.test-on-return=
spring.datasource.druid.test-while-idle=
spring.datasource.druid.time-between-eviction-runs-millis=
spring.datasource.druid.min-evictable-idle-time-millis=
spring.datasource.druid.max-evictable-idle-time-millis=
spring.datasource.druid.filters= #配置多個英文逗號分隔
....//more
  • 監(jiān)控配置
# WebStatFilter配置,說明請參考Druid Wiki,配置_配置WebStatFilter
spring.datasource.druid.web-stat-filter.enabled= #是否啟用StatFilter默認值true
spring.datasource.druid.web-stat-filter.url-pattern=
spring.datasource.druid.web-stat-filter.exclusions=
spring.datasource.druid.web-stat-filter.session-stat-enable=
spring.datasource.druid.web-stat-filter.session-stat-max-count=
spring.datasource.druid.web-stat-filter.principal-session-name=
spring.datasource.druid.web-stat-filter.principal-cookie-name=
spring.datasource.druid.web-stat-filter.profile-enable=

# StatViewServlet配置,說明請參考Druid Wiki,配置_StatViewServlet配置
spring.datasource.druid.stat-view-servlet.enabled= #是否啟用StatViewServlet默認值true
spring.datasource.druid.stat-view-servlet.url-pattern=
spring.datasource.druid.stat-view-servlet.reset-enable=
spring.datasource.druid.stat-view-servlet.login-username=
spring.datasource.druid.stat-view-servlet.login-password=
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.deny=

# Spring監(jiān)控配置,說明請參考Druid Github Wiki,配置_Druid和Spring關聯(lián)監(jiān)控配置
spring.datasource.druid.aop-patterns= # Spring監(jiān)控AOP切入點,如x.y.z.service.*,配置多個英文逗號分隔
# 如果spring.datasource.druid.aop-patterns要代理的類沒有定義interface請設置spring.aop.proxy-target-class=true

配置加密

把數據庫密碼直接寫入配置文件中并不是一個好的選擇,這樣很容易造成內部人員密碼泄露,此時我們可以選擇用druid的加密保存功能。
首先,我們可以寫一個類調用druid的生成

import com.alibaba.druid.filter.config.ConfigTools;

public class CreateDruidPwd {

    public static  void  main(String [] args){
        String []  pwd={"123456"};

        try {
            ConfigTools.main(pwd);
            // ConfigTools.main(new String[]{"123456"});
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

運行后可以看到,控制臺輸出了以下幾個:

image.png

即:私鑰,公鑰,密碼
我們把這些放到我們的application.properties配置文件中。

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
# 生成的加密后的密碼(原密碼 123456)
spring.datasource.password=QJEuE3n5CB4rQcKd+plbMa+6oc+5kNmqjQ/pRDAxgX3RYEYTON0ORLGAEanrRcfQky/9EqV+YUvyeRU+uWxc0Q==
# 生成的公鑰
public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJV3yUklZKuyV43zgWHZ+3t8igVp+YVuOn5ocAZratYujmRJ6HiHE7ioplwkXsHS9+ISlXSRXQEJ4pY0xZgw0/MCAwEAAQ==
# 配置 connection-properties,啟用加密,配置公鑰。
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}
# 啟用ConfigFilter
spring.datasource.druid.filter.config.enabled=true

重新啟動項目即可使用

參考

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容