druid的簡介
druid首先是一個(gè)數(shù)據(jù)庫連接池。druid是目前最好的數(shù)據(jù)庫連接池,在功能、性能、擴(kuò)展性方面,都超過其他數(shù)據(jù)庫連接池,包括dbcp、c3p0、bonecp、proxool、jboss datasource。druid已經(jīng)在阿里巴巴部署了超過600個(gè)應(yīng)用,經(jīng)過一年多生產(chǎn)環(huán)境大規(guī)模部署的嚴(yán)苛考驗(yàn)。druid是阿里巴巴開發(fā)的號稱為監(jiān)控而生的數(shù)據(jù)庫連接池!
druid的功能
1、替換dbcp和c3p0。druid提供了一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池。
2、可以監(jiān)控?cái)?shù)據(jù)庫訪問性能,druid內(nèi)置提供了一個(gè)功能強(qiáng)大的statfilter插件,能夠詳細(xì)統(tǒng)計(jì)sql的執(zhí)行性能,這對于線上分析數(shù)據(jù)庫訪問性能有幫助。
3、數(shù)據(jù)庫密碼加密。直接把數(shù)據(jù)庫密碼寫在配置文件中,這是不好的行為,容易導(dǎo)致安全問題。druiddruiver和druiddatasource都支持passwordcallback。
4、sql執(zhí)行日志,druid提供了不同的logfilter,能夠支持common-logging、log4j和jdklog,你可以按需要選擇相應(yīng)的logfilter,監(jiān)控你應(yīng)用的數(shù)據(jù)庫訪問情況。
5、擴(kuò)展jdbc,如果你要對jdbc層有編程的需求,可以通過druid提供的filter機(jī)制,很方便編寫jdbc層的擴(kuò)展插件。
所以druid可以:
1、充當(dāng)數(shù)據(jù)庫連接池。
2、可以監(jiān)控?cái)?shù)據(jù)庫訪問性能
3、獲得sql執(zhí)行日志
在spring boot基礎(chǔ)上開始配置:
1.引入當(dāng)前最新的版本,這里我們使用的maven
1
2
3
4
5
|
<dependency> <groupid>com.alibaba</groupid> <artifactid>druid</artifactid> <version> 1.1 . 12 </version> </dependency> |
2.新建一個(gè)配置類,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
@configuration //在項(xiàng)目啟動時(shí)可以初始化配置 public class druidconfiguration { @bean public servletregistrationbean staviewservlet(){ servletregistrationbean servletregistrationbean = new servletregistrationbean( new statviewservlet(), "/druid/*" ); //白名單為空允許任何ip訪問 servletregistrationbean.addinitparameter( "allow" , "127.0.0.1" ); //ip黑名單(存在共同時(shí),deny優(yōu)先于allow):如果滿足deny的即提示:sorry you are not permitted... servletregistrationbean.addinitparameter( "deny" , "127.0.0.2" ); //登錄查看信息的賬號密碼 servletregistrationbean.addinitparameter( "loginusername" , "druid" ); servletregistrationbean.addinitparameter( "loginpassword" , "druid" ); //是否能夠重置數(shù)據(jù) servletregistrationbean.addinitparameter( "resetenable" , "true" ); return servletregistrationbean; } @bean public filterregistrationbean statfilter(){ filterregistrationbean filterregistrationbean = new filterregistrationbean( new webstatfilter()); //添加過濾規(guī)則 filterregistrationbean.addurlpatterns( "/*" ); //添加不需要忽略的格式信息 filterregistrationbean.addinitparameter( "exclusions" , "*.js,*.gif,*.jpn,*.png,*.css,*.ico,/druid/*" ); return filterregistrationbean; } //配置數(shù)據(jù)庫的基本連接信息 @bean @primary @configurationproperties (prefix = "spring.datasource" ) //在application.properties中讀取配置信息注入到druiddatasource里 public datasource datasource(){ druiddatasource druiddatasource = datasourcebuilder.create().type(druiddatasource. class ).build(); druiddatasource.setinitialsize( 3 ); //初始化物理連接的數(shù)量 try { druiddatasource.addfilters( "stat,wall" ); //stat是sql監(jiān)控,wall是防火墻(如果不添加則監(jiān)控?zé)o效),不能添加log4j不然會出錯(cuò) } catch (sqlexception e) { e.printstacktrace(); } return druiddatasource; } } |
在application.properties中添加如下配置信息:
1
2
3
4
5
6
|
spring.datasource.type=com.alibaba.druid.pool.druiddatasource spring.datasource.driver- class -name=com.mysql.jdbc.driver spring.datasource.url=jdbc:mysql: //localhost:3306/mrbshiro?characterencoding=utf-8 spring.datasource.username=root spring.datasource.password= 123456 |
上面這些配置會自動注入到我們上面的druiddatasource實(shí)列里。
這樣就可以訪問projecturl/druid進(jìn)行登錄了
![]() |
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。
原文鏈接:https://www.cnblogs.com/-brl/p/10252890.html