天天看點

spring mysql 連接配接池配置_Druid + spring 配置資料庫連接配接池

1. Druid的簡介

Druid是一個資料庫連接配接池。Druid是目前最好的資料庫連接配接池,在功能、性能、擴充性方面,都超過其他資料庫連接配接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已經在阿裡巴巴部署了超過600個應用,經過一年多生産環境大規模部署的嚴苛考驗。Druid是阿裡巴巴開發的号稱為監控而生的資料庫連接配接池。

2. Druid組成

•Druid是一個JDBC元件,它包括三部分:

•1、DruidDriver 代理Driver,能夠提供基于Filter-Chain模式的插件體系。可以監控資料庫通路性能

•2、DruidDataSource 高效可管理的資料庫連接配接池,充當資料庫連接配接池。

•3、SQLParser ,獲得SQL執行日志

3. Druid功能

•1) 可以監控資料庫通路性能,Druid内置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對于線上分析資料庫通路性能有幫助。

•2) 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴充性好的資料庫連接配接池。

•3) 資料庫密碼加密。直接把資料庫密碼寫在配置檔案中,這是不好的行為,容易導緻安全問題。DruidDruiver和DruidDataSource都支援PasswordCallback。

•4) SQL執行日志,Druid提供了不同的LogFilter,能夠支援Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的資料庫通路情況。

•5)擴充JDBC,如果你要對JDBC層有程式設計的需求,可以通過Druid提供的Filter-Chain機制,很友善編寫JDBC層的擴充插件。

4. 在maven項目中配置Druid

4.1 pom.xml中添加依賴

com.alibaba

druid

1.1.6

org.aspectj

aspectjweaver

1.8.12

4.2 web.xml添加過濾器和servlet(配置監測通路)

DruidWebStatFilter

com.alibaba.druid.support.http.WebStatFilter

exclusions

*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid

public static String encrypt(String privateKey, Stringpwd) throws Exception {

String enPassword = ConfigTools.encrypt(privateKey, pwd);

return enPassword;

}

public static String decrypt(String publicKey, Stringenpwd) throws Exception {

String password = ConfigTools.decrypt(publicKey, enpwd);

return password;

}

}