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;
}
}