1. 程式人生 > 其它 >druid和druid-spring-boot-starter 的區別

druid和druid-spring-boot-starter 的區別

今天建專案的時候,使用springboot整合druid的時候啟動報錯:

springboot專案中提示報錯Cannot resolve configuration property 'spring.datasource.xxxx'

然後我就網上搜索資料,可以參考:

https://www.cnblogs.com/dxiaodang/p/14571590.html

主要原因還是要不要手動寫配置類,spring boot 的使用 auto幫我們封裝好了屬性值

描述如下:

    1. 作用是一樣的,都是連線池提供連線,裡邊的配置引數都是一樣的;
    2. 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寫個配置類了。