druid和druid-spring-boot-starter 的區別
阿新 • • 發佈:2021-10-10
今天建專案的時候,使用springboot整合druid的時候啟動報錯:
springboot專案中提示報錯Cannot resolve configuration property 'spring.datasource.xxxx'
然後我就網上搜索資料,可以參考:
https://www.cnblogs.com/dxiaodang/p/14571590.html
主要原因還是要不要手動寫配置類,spring boot 的使用 auto幫我們封裝好了屬性值
描述如下:
- 作用是一樣的,都是連線池提供連線,裡邊的配置引數都是一樣的;
- druid-spring-boot-starter只是在druid基礎上進行了一次封裝,專門用來整合spring-boot專案;
如果springboot專案想使用druid也是可以的,但是需要手動編寫配置類並注入到bean中,並載入對應的配置引數;但是不建議,明明有現成封裝好的jar,就直接使用就好了!!!
所以我後面改成了使用druid-spring-boot-starter依賴。
<!--改為stater的方式--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency>
並且在application.yml檔案中配置如下內容:
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource # driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test01 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver druid: # Druid資料來源配置 # 初始連線數 initialSize: 5 # 最小連線池數量 minIdle: 10 # 最大連線池數量 maxActive: 20 # 配置獲取連線等待超時的時間 maxWait:60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一個連線在池中最小生存的時間,單位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一個連線在池中最大生存的時間,單位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置檢測連線是否有效 validationQuery: SELECT 1 #申請連線的時候檢測,如果空閒時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連線是否有效。 testWhileIdle: true #配置從連線池獲取連線時,是否檢查連線有效性,true每次都檢查;false不檢查。做了這個配置會降低效能。 testOnBorrow: false #配置向連線池歸還連線時,是否檢查連線有效性,true每次都檢查;false不檢查。做了這個配置會降低效能。 testOnReturn: false #開啟PsCache,並且指定每個連線上PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 # 配置監控統計攔截的filters,去掉後監控介面sql無法統計,'wall'用於防火牆 filters: stat,wall,log4j #合併多個DruidDatasource的監控資料 useGlobalDataSourceStat: true #通過connectProperties屬性來開啟mergesql功能羅慢sQL記錄 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500;
這樣就不需要單獨對DruidDatasource寫個配置類了。