一、德魯伊連接池密碼要改嗎
德魯伊連接池數據庫配置文件中包含數據庫密碼,這樣會導緻密碼泄露的風險,因此建議修改德魯伊數據庫密碼。修改密碼的具體步驟如下:
public class Test {
public static void main(String[] args) {
String password = "oldPassword"; //舊密碼
String newPassword = "newPassword"; //新密碼
String druidPassword = "XXX"; //加密後的密碼
String data = "jdbc:mysql://localhost:3306/druid";
String encryptPassword = DruidPasswordUtil.encrypt(password, data); //加密
if(encryptPassword .equals(druidPassword)) {
String newEncryptPassword = DruidPasswordUtil.encrypt(newPassword, data); //加密新密碼
System.out.println(newEncryptPassword);
}
}
}
二、德魯伊數據連接池配置
在使用德魯伊數據連接池之前,需要在pom文件中引入德魯伊依賴,具體如下:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
德魯伊數據連接池的配置主要包括:
1、連接池名稱設置
2、JDBC驅動設置
3、數據庫連接字符串設置
4、用戶名和密碼設置
5、連接池參數設置
6、過濾器設置
@Configuration
public class DruidConfig {
private Logger logger = LoggerFactory.getLogger(DruidConfig.class);
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druid() {
return new DruidDataSource();
}
@Bean
public ServletRegistrationBean statViewServlet() {
//配置Druid監控平台
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
//IP白名單
servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
//IP黑名單(共同存在時,deny優先於allow)
servletRegistrationBean.addInitParameter("deny", "192.168.1.100");
//用戶名
servletRegistrationBean.addInitParameter("loginUsername", "druid");
//密碼
servletRegistrationBean.addInitParameter("loginPassword", "123456");
//是否顯示SQL監控
servletRegistrationBean.addInitParameter("logSlowSql", "true");
logger.info("開啟Druid監控");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean webStatFilter() {
//配置Druid監控攔截器
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
//過濾規則
filterRegistrationBean.addUrlPatterns("/*");
//過濾靜態資源
filterRegistrationBean.addInitParameter("exclusions", "*.css,*.js,*.html,/druid/*");
return filterRegistrationBean;
}
}
三、德魯伊連接池教程
德魯伊連接池是目前比較流行的Java連接池之一,它不僅可以完美整合一些主流框架,而且提供了很多高級特性。
德魯伊連接池的使用流程如下:
1、添加德魯伊連接池依賴
2、在配置文件中對德魯伊連接池進行配置
3、在代碼中獲取連接池對象
4、從連接池對象中獲取連接
5、將連接返回連接池
@Configuration
public class TestConfig {
@Autowired
private DataSource dataSource;
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource);
}
public void test() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
//從連接池中獲取連接
conn = dataSource.getConnection();
String sql = "SELECT * FROM user";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
System.out.println("user_id:" + rs.getInt("user_id") + ",user_name:" + rs.getString("user_name"));
}
} catch(SQLException e) {
e.printStackTrace();
} finally {
//將連接返回連接池
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
}
}
四、德魯伊連接池有什麼用
德魯伊連接池主要用於解決數據庫連接過多、連接被耗盡、效率低下等問題。通過使用連接池,可以避免頻繁地創建、關閉數據庫連接,提高了數據庫連接的效率和穩定性。
五、德魯伊連接池優缺點
德魯伊連接池的優點有:
1、提高了數據庫連接使用效率和穩定性
2、提供豐富的監控、統計功能,便於問題排查
3、配合Druid監控平台可以監控SQL語句
4、支持JDBC和Datasource數據源類型
德魯伊連接池的缺點有:
1、需要在應用啟動前進行初始化,佔用一定的時間
2、默認配置較為保守,沒有發揮出德魯伊連接池的高級特性
六、德魯伊連接池源碼
德魯伊連接池源碼下載地址:
https://github.com/alibaba/druid
七、德魯伊連接池配置參數
在使用德魯伊連接池時,可以對連接池進行配置參數,從而達到更好的使用效果,主要的配置參數如下:
1、initialSize:初始化連接數量
2、minIdle:最小空閑連接數量
3、maxActive:最大連接數量
4、maxWait:獲取連接等待超時時間
5、timeBetweenEvictionRunsMillis:連接空閑池中的最小生存時間
6、minEvictableIdleTimeMillis:連接池中連接最小空閑時間
7、validationQuery:用於驗證連接是否可用的SQL語句
8、testWhileIdle:空閑連接是否進行驗證
9、testOnBorrow:獲取連接時是否進行驗證
10、testOnReturn:歸還連接時是否進行驗證
八、德魯伊連接池如何銷毀
在應用關閉時,需要手動關閉德魯伊連接池,避免連接池資源未被釋放,而導致資源泄露。關閉連接池的詳細代碼如下:
@PreDestroy
public void destroy() {
if(dataSource != null) {
((DruidDataSource) dataSource).close();
}
}
九、德魯伊連接池參數說明
德魯伊連接池參數說明請參考官方文檔:
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E6%95%B0
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/303240.html
微信掃一掃
支付寶掃一掃