一、為什麼使用Druid?
Druid 是由阿里巴巴開發的資料庫連接池組件,Druid 在監控、可擴展性、穩定性方面具有非常大的優勢。同時,Druid 提供了一個界面,可以實時監控連接池和 SQL 執行情況,方便開發人員進行分析和優化。
在 Spring 項目中,使用 Druid 可以提高資料庫的連接效率和可靠性,具有非常大的意義。
二、使用Druid的配置步驟
1. 添加Druid和MySQL依賴庫
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
2. 配置Druid連接池參數
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 配置Druid連接池
spring.datasource.initial-size=5
spring.datasource.min-idle=5
spring.datasource.max-active=20
spring.datasource.max-wait=60000
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.min-evictable-idle-time-millis=300000
spring.datasource.validation-query=select 1 from dual
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false
# 配置Druid監控統計
spring.datasource.filters=stat
spring.datasource.web-stat-filter.url-pattern=/*
# 配置Druid登錄界面
spring.datasource.druid.login-username=admin
spring.datasource.druid.login-password=admin
spring.datasource.druid.reset-enable=false
3. 註冊Druid的Servlet和Filter
在 Spring Boot 中,可以在 Application 中通過註解 @ServletComponentScan 掃描 Servlet 和 Filter。
@ServletComponentScan
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4. 配置Druid的監控頁面
在 Spring Boot 中,可以通過配置 Druid 的 Servlet 和 Filter 實現 Druid 監控頁面的訪問,在配置文件中添加以下配置信息。
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.reset-enable=true
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin
spring.datasource.druid.stat-view-filter.enabled=true
spring.datasource.druid.stat-view-filter.url-pattern=/*
spring.datasource.druid.stat-view-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
spring.datasource.druid.stat-view-filter.reset-enable=true
spring.datasource.druid.stat-view-filter.login-username=admin
spring.datasource.druid.stat-view-filter.login-password=admin
三、注意事項
1. 配置連接池時需要對參數進行合理調整
在實際使用中,需要根據實際情況調整配置參數,保證連接池的最佳性能。
initialSize:初始化連接數;
minIdle:最小空閑連接數;
maxActive:最大活躍連接數;
maxWait:獲取連接的最大等待時間;
timeBetweenEvictionRunsMillis:間隔多久進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒;
minEvictableIdleTimeMillis:一個連接在池中最小空閑時間,單位是毫秒;
validationQuery:用來檢測連接是否有效的 SQL 語句;
testWhileIdle:是否開啟檢測連接是否有效;
testOnBorrow:在獲取連接的時候是否檢測連接是否有效;
testOnReturn:在歸還連接的時候是否檢測連接是否有效;
2. 注意Druid監控的安全問題
Druid 的監控功能提供了實時監控連接和 SQL 執行情況的界面,方便開發人員進行分析和優化。但是,由於監控界面並沒有進行身份驗證,因此可能會導致安全問題。
為了保證監控功能的安全性,需要在生產環境中禁用監控功能,並添加身份驗證功能。
3. 需要在代碼中進行實體類的注入
在使用 Spring Boot 和 Druid 時,需要在代碼中注入 DataSource,具體實現方式可以參考以下代碼:
@Autowired
private DataSource dataSource;
4. 配置Druid連接池時可能會遇到一些問題
在配置 Druid 連接池時,可能會出現一些問題,如運行時報錯、連接池無法初始化等問題。如果遇到問題,可以查看控制台的日誌信息,排查錯誤原因。
總結
本文介紹了使用 Druid 連接池的注意事項和配置步驟。在使用 Druid 時,需要合理調整連接池參數,注意監控安全問題,並進行實體類的注入。如果遇到連接池配置問題,可以查看控制台的日誌信息,排查問題所在。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293036.html