????????spring boot集成數(shù)據(jù)庫連接池druid
????????最近在進(jìn)行程序優(yōu)化的過程中發(fā)現(xiàn)程序瓶頸在數(shù)據(jù)庫連接這塊,于是開始研究怎么對數(shù)據(jù)庫連接池參數(shù)進(jìn)行調(diào)優(yōu),在這個(gè)過程中發(fā)現(xiàn)很多人使用druid很不規(guī)范,經(jīng)常會出現(xiàn)導(dǎo)入的包和配置參數(shù)不對應(yīng)的情況,這些都是因?yàn)閷蒬ruid一知半解導(dǎo)致的,因此決心寫一篇關(guān)于spring boot集成數(shù)據(jù)庫連接池druid的博客來徹底理解清楚其中的原理。
? ? ? ? 在使用的過程中遇到spring boot集成druid分別有這三種情況:springboot集成druid、springboot集成druid-spring-boot-starter、springboot集成shardingsphere和druid,下面將分別來對這三種情況進(jìn)行詳細(xì)的分析。
? ? ? ? 一、springboot集成druid
? ? ? ? springboot集成druid分別可以引入如下兩種jar包:
springboot框架之前都是使用druid包,?springboot問世之后開始引用starter包依賴,springboot的設(shè)計(jì)有一個(gè)很重要的思想是約定大于配置,第二節(jié)會講解集成starter包依賴的方式,大家可以對比一下就能一目了然了。
集成druid包首先引入依賴,之后開始進(jìn)行配置,yml配置如下:
?光有這些配置druid并不能夠生效,這里還需要加一個(gè)Javaconfig配置類DruidConfig,核心配置內(nèi)容如下:
?這樣spring boot集成druid的就完成了。
? ? ? ? 二、springboot集成druid-spring-boot-starter
????????第一節(jié)講到集成druid包,這一節(jié)會講解集成starer包的方式,因?yàn)閟pring boot具備自動(dòng)裝配的功能,這里我們只需要引入starter包之后,加上如下配置就可以了:
可見starter包依賴,簡單了許多,這些歸功于spring boot的約定大于配置的特性。?
? ? ? ? 三、springboot集成shardingsphere和druid
? ? ? ? 這一步是由我們的業(yè)務(wù)系統(tǒng)聯(lián)想到的,前面的集成是比較常規(guī)的,但是當(dāng)我們由于業(yè)務(wù)量增大,服務(wù)擴(kuò)展到了分庫分表,而且采用了shardingjdbc方案的時(shí)候,這時(shí)候需要引入如下依賴:
引入shardingjdbc之后數(shù)據(jù)庫配置是這樣的:
? ? ? ? 這時(shí)候很多人又開始迷糊了,連接池的配置該寫在哪里呢,經(jīng)過一系列資料閱讀和源碼研究,發(fā)現(xiàn)數(shù)據(jù)庫連接池配置是這樣的:
? ? ? ? ?這里我們需找到sharding-jdbc-spring-boot-starter包下面的spring.factories文件,可以看到:
?進(jìn)入SpringBootConfiguration類,druid的配置通過如下方法加載:
?????????順著這個(gè)方法往下debug,我們就可以徹底理解清楚shardingjdbc方案分庫分表之后數(shù)據(jù)庫連接池怎么配置生效了。文章來源:http://www.zghlxwxcb.cn/news/detail-489297.html
總結(jié):到此springboot集成數(shù)據(jù)庫連接池druid常見的幾種方式應(yīng)該是講清楚了,大家對著講解可以去理解一下。文章來源地址http://www.zghlxwxcb.cn/news/detail-489297.html
到了這里,關(guān)于【八】spring boot集成數(shù)據(jù)庫連接池druid的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!