SpringBoot 集成 Druid過(guò)程解析
Druid是阿里巴巴開(kāi)源平臺(tái)上一個(gè)數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn),它結(jié)合了C3P0、DBCP、PROXOOL等DB池的優(yōu)點(diǎn),同時(shí)加入了日志監(jiān)控,可以很好的監(jiān)控DB池連接和SQL的執(zhí)行情況,可以說(shuō)是針對(duì)監(jiān)控而生的DB連接池。更多資料說(shuō)明大家可以查看官網(wǎng)
Github:https://github.com/alibaba/druid
Druid官方已經(jīng)編寫(xiě)好了相關(guān)的啟動(dòng)器,我們可以引入啟動(dòng)器,然后進(jìn)行相關(guān)配置就可以使用Druid的各種功能。如果只是引入Druid依賴包,沒(méi)有引入Druid的SpringBoot啟動(dòng)器依賴,這時(shí)如果要實(shí)現(xiàn)使用Druid的,需要自己實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池對(duì)象(DataSource),然后將配置信息注入到實(shí)現(xiàn)的連接池對(duì)象中。另外如果要使用Druid的監(jiān)控功能,還需要編寫(xiě)Druid內(nèi)置監(jiān)控頁(yè)面StatViewServlet對(duì)象和WebViewFilter到Spring容器中。
這里的話使用Druid啟動(dòng)器進(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)目中簡(jiǎn)單使用Druid連接池了,下面是數(shù)據(jù)庫(kù)連接池?cái)U(kuò)展配置和監(jiān)控配置
3. 添加數(shù)據(jù)庫(kù)連接擴(kuò)展配置
# 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置獲取連接等待超時(shí)的時(shí)間 spring.datasource.maxWait=60000 # 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(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 # 打開(kāi)PSCache,并且指定每個(gè)連接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 通過(guò)connectProperties屬性來(lái)打開(kāi)mergeSql功能;慢SQL記錄 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
4. 添加Druid的監(jiān)控配置
# 配置多個(gè)使用英文逗號(hào)隔開(kāi),常用的有stat,wall,loj4j,slf4j等spring.datasource.druid.filters=stat # StatViewServlet配置,說(shuō)明請(qǐng)參考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配置,說(shuō)明請(qǐng)參考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)目啟動(dòng)之后,就可以打開(kāi)Druid的監(jiān)控界面:http://localhost:8080/druid/index.html 會(huì)要求你進(jìn)行登錄,上面設(shè)置的是admin/123456
登錄后來(lái)到監(jiān)控界面,可以查看數(shù)據(jù)路連接池信息,請(qǐng)求信息,SQL執(zhí)行記錄
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決Properties屬性文件中的值有等號(hào)和換行的小問(wèn)題
這篇文章主要介紹了解決Properties屬性文件中的值有等號(hào)有換行的小問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java如何利用LocalDate獲取某個(gè)月的第一天與最后一天日期
這篇文章主要給大家介紹了關(guān)于Java如何利用LocalDate獲取某個(gè)月的第一天與最后一天日期的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01SpringSecurity怎樣使用注解控制權(quán)限
這篇文章主要介紹了SpringSecurity怎樣使用注解控制權(quán)限的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06使用SpringBoot 配置Oracle和H2雙數(shù)據(jù)源及問(wèn)題
這篇文章主要介紹了使用SpringBoot 配置Oracle和H2雙數(shù)據(jù)源及問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java輕松使用工具類(lèi)實(shí)現(xiàn)獲取wav時(shí)間長(zhǎng)度
在Java中,工具類(lèi)定義了一組公共方法,這篇文章將介紹Java中使用工具類(lèi)來(lái)獲取一個(gè)wav文件的時(shí)間長(zhǎng)度,感興趣的同學(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ī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06