druid-spring-boot-3-starter目前最新版本是1.2.20,雖然適配了SpringBoot3,但缺少自動(dòng)裝配的配置文件,會(huì)導(dǎo)致加載時(shí)報(bào)加載驅(qū)動(dòng)異常。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
解決方案
需要手動(dòng)在resources目錄下創(chuàng)建META-INF/spring/
目錄,并且在META-INF/spring/
創(chuàng)建 org.springframework.boot.autoconfigure.AutoConfiguration.imports
,
文件中添加如下內(nèi)容:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-837842.html
com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure
application.yaml
添加druid連接池配置項(xiàng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-837842.html
spring:
datasource:
# 連接池類(lèi)型
type: com.alibaba.druid.pool.DruidDataSource
# Druid的其他屬性配置 springboot3整合情況下,數(shù)據(jù)庫(kù)連接信息必須在Druid屬性下!
druid:
url: jdbc:mysql://localhost:3306/day01
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
# 初始化時(shí)建立物理連接的個(gè)數(shù)
initial-size: 5
# 連接池的最小空閑數(shù)量
min-idle: 5
# 連接池最大連接數(shù)量
max-active: 20
# 獲取連接時(shí)最大等待時(shí)間,單位毫秒
max-wait: 60000
# 申請(qǐng)連接的時(shí)候檢測(cè),如果空閑時(shí)間大于timeBetweenEvictionRunsMillis,執(zhí)行validationQuery檢測(cè)連接是否有效。
test-while-idle: true
# 既作為檢測(cè)的間隔時(shí)間又作為testWhileIdel執(zhí)行的依據(jù)
time-between-eviction-runs-millis: 60000
# 銷(xiāo)毀線(xiàn)程時(shí)檢測(cè)當(dāng)前連接的最后活動(dòng)時(shí)間和當(dāng)前時(shí)間差大于該值時(shí),關(guān)閉當(dāng)前連接(配置連接在池中的最小生存時(shí)間)
min-evictable-idle-time-millis: 30000
# 用來(lái)檢測(cè)數(shù)據(jù)庫(kù)連接是否有效的sql 必須是一個(gè)查詢(xún)語(yǔ)句(oracle中為 select 1 from dual)
validation-query: select 1
# 申請(qǐng)連接時(shí)會(huì)執(zhí)行validationQuery檢測(cè)連接是否有效,開(kāi)啟會(huì)降低性能,默認(rèn)為true
test-on-borrow: false
# 歸還連接時(shí)會(huì)執(zhí)行validationQuery檢測(cè)連接是否有效,開(kāi)啟會(huì)降低性能,默認(rèn)為true
test-on-return: false
# 是否緩存preparedStatement, 也就是PSCache,PSCache對(duì)支持游標(biāo)的數(shù)據(jù)庫(kù)性能提升巨大,比如說(shuō)oracle,在mysql下建議關(guān)閉。
pool-prepared-statements: false
# 要啟用PSCache,必須配置大于0,當(dāng)大于0時(shí),poolPreparedStatements自動(dòng)觸發(fā)修改為true。在Druid中,不會(huì)存在Oracle下PSCache占用內(nèi)存過(guò)多的問(wèn)題,可以把這個(gè)數(shù)值配置大一些,比如說(shuō)100
max-pool-prepared-statement-per-connection-size: -1
# 合并多個(gè)DruidDataSource的監(jiān)控?cái)?shù)據(jù)
use-global-data-source-stat: true
到了這里,關(guān)于SpringBoot3整合Druid數(shù)據(jù)源的解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!