SpringBoot 集成 Druid過程解析
Druid是阿里巴巴開源平臺上一個(gè)數(shù)據(jù)庫連接池實(shí)現(xiàn),它結(jié)合了C3P0、DBCP、PROXOOL等DB池的優(yōu)點(diǎn),同時(shí)加入了日志監(jiān)控,可以很好的監(jiān)控DB池連接和SQL的執(zhí)行情況,可以說是針對監(jiān)控而生的DB連接池。更多資料說明大家可以查看官網(wǎng)
Github:https://github.com/alibaba/druid
Druid官方已經(jīng)編寫好了相關(guān)的啟動器,我們可以引入啟動器,然后進(jìn)行相關(guān)配置就可以使用Druid的各種功能。如果只是引入Druid依賴包,沒有引入Druid的SpringBoot啟動器依賴,這時(shí)如果要實(shí)現(xiàn)使用Druid的,需要自己實(shí)現(xiàn)數(shù)據(jù)庫連接池對象(DataSource),然后將配置信息注入到實(shí)現(xiàn)的連接池對象中。另外如果要使用Druid的監(jiān)控功能,還需要編寫Druid內(nèi)置監(jiān)控頁面StatViewServlet對象和WebViewFilter到Spring容器中。
這里的話使用Druid啟動器進(jìn)行集成。
1. 在 Spring Boot 項(xiàng)目中加入druid-spring-boot-starter依賴
Maven
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</version> </dependency>
Gradle
compile 'com.alibaba:druid-spring-boot-starter:1.1.17'
2. 添加基本配置
在SpringBoot中配置文件中加入如下配置,就可以使用Druid連接池了
spring.datasource.url=jdbc:mysql://192.168.56.102:3306/demos?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSource
上面兩步就可以在項(xiàng)目中簡單使用Druid連接池了,下面是數(shù)據(jù)庫連接池?cái)U(kuò)展配置和監(jiān)控配置
3. 添加數(shù)據(jù)庫連接擴(kuò)展配置
# 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置獲取連接等待超時(shí)的時(shí)間 spring.datasource.maxWait=60000 # 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 打開PSCache,并且指定每個(gè)連接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
4. 添加Druid的監(jiān)控配置
# 配置多個(gè)使用英文逗號隔開,常用的有stat,wall,loj4j,slf4j等spring.datasource.druid.filters=stat # StatViewServlet配置,說明請參考Druid Wiki,配置_StatViewServlet配置 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=123456 spring.datasource.druid.stat-view-servlet.allow=127.0.0.1 # WebStatFilter配置,說明請參考Druid Wiki,配置_配置WebStatFilter spring.datasource.druid.web-stat-filter.enabled= true spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-stat-filter.exclusions='*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
配置好后,項(xiàng)目啟動之后,就可以打開Druid的監(jiān)控界面:http://localhost:8080/druid/index.html 會要求你進(jìn)行登錄,上面設(shè)置的是admin/123456
登錄后來到監(jiān)控界面,可以查看數(shù)據(jù)路連接池信息,請求信息,SQL執(zhí)行記錄
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java如何利用LocalDate獲取某個(gè)月的第一天與最后一天日期
這篇文章主要給大家介紹了關(guān)于Java如何利用LocalDate獲取某個(gè)月的第一天與最后一天日期的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01SpringSecurity怎樣使用注解控制權(quán)限
這篇文章主要介紹了SpringSecurity怎樣使用注解控制權(quán)限的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06使用SpringBoot 配置Oracle和H2雙數(shù)據(jù)源及問題
這篇文章主要介紹了使用SpringBoot 配置Oracle和H2雙數(shù)據(jù)源及問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java輕松使用工具類實(shí)現(xiàn)獲取wav時(shí)間長度
在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用工具類來獲取一個(gè)wav文件的時(shí)間長度,感興趣的同學(xué)繼續(xù)往下閱讀吧2021-10-10Java使用hutool實(shí)現(xiàn)文件大小的友好輸出
這篇文章主要為大家詳細(xì)介紹了Java如何使用hutool實(shí)現(xiàn)文件大小的友好輸出,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下2023-11-11淺談Java中ArrayList的擴(kuò)容機(jī)制
本文主要介紹了淺談Java中ArrayList的擴(kuò)容機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06