springboot配置druid連接池的方法示例
Druid的簡介
Druid首先是一個數(shù)據(jù)庫連接池。Druid是目前最好的數(shù)據(jù)庫連接池,在功能、性能、擴展性方面,都超過其他數(shù)據(jù)庫連接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已經(jīng)在阿里巴巴部署了超過600個應(yīng)用,經(jīng)過一年多生產(chǎn)環(huán)境大規(guī)模部署的嚴苛考驗。Druid是阿里巴巴開發(fā)的號稱為監(jiān)控而生的數(shù)據(jù)庫連接池!
Druid的功能
1、替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的數(shù)據(jù)庫連接池。
2、可以監(jiān)控數(shù)據(jù)庫訪問性能,Druid內(nèi)置提供了一個功能強大的StatFilter插件,能夠詳細統(tǒng)計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、擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter機制,很方便編寫JDBC層的擴展插件。
所以Druid可以:
1、充當(dāng)數(shù)據(jù)庫連接池。
2、可以監(jiān)控數(shù)據(jù)庫訪問性能
3、獲得SQL執(zhí)行日志
在spring boot基礎(chǔ)上開始配置:
1.引入當(dāng)前最新的版本,這里我們使用的maven
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency>
2.新建一個配置類,如下:
@Configuration//在項目啟動時可以初始化配置
public class DruidConfiguration {
@Bean
public ServletRegistrationBean staViewServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
"/druid/*");
//白名單為空允許任何ip訪問
servletRegistrationBean.addInitParameter("allow","127.0.0.1");
//ip黑名單(存在共同時,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不然會出錯
} catch (SQLException e) {
e.printStackTrace();
}
return druidDataSource;
}
}
在application.properties中添加如下配置信息:
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實列里。
這樣就可以訪問projectUrl/druid進行登錄了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java字符串比較獲取字符串出現(xiàn)次數(shù)的示例
java獲取一個字符串在整個字符串出現(xiàn)的次數(shù),下面寫出我的思路和二個實現(xiàn)方法,大家參考使用吧2014-01-01
Java基礎(chǔ)知識之StringWriter流的使用
這篇文章主要介紹了Java基礎(chǔ)知識之StringWriter流的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring Security實現(xiàn)自動登陸功能示例
自動登錄在很多網(wǎng)站和APP上都能用的到,解決了用戶每次輸入賬號密碼的麻煩。本文就使用Spring Security實現(xiàn)自動登陸功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Java 數(shù)據(jù)結(jié)構(gòu)線性表之順序存儲詳解原理
線性表的順序存儲是指用一組地址連續(xù)的存儲單元依次存儲線性表中的各個元素、使得線性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲在相鄰的物理存儲單元中,即通過數(shù)據(jù)元素物理存儲的相鄰關(guān)系來反映數(shù)據(jù)元素之間邏輯上的相鄰關(guān)系2021-10-10
springboot+vue實現(xiàn)SSE服務(wù)器發(fā)送事件的示例
本文介紹了使用Spring Boot和Vue實現(xiàn)服務(wù)器發(fā)送事件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
SpringMVC項目訪問controller時候報404的解決
這篇文章主要介紹了SpringMVC項目訪問controller時候報404的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

