配置文件 pom.xml
<!-- 阿里巴巴的數據庫連接池 druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
DruidConfig.java
package com.zwd.house.config;
import com.alibaba.druid.filter.Filter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.google.common.collect.Lists;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.druid")
@Bean(initMethod = "init",destroyMethod = "close")
public DruidDataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
return dataSource;
}
@Bean
public Filter statFilter(){
StatFilter filter = new StatFilter();
filter.setSlowSqlMillis(1);
// druid 配置輸出慢SQL日誌記錄
// 例如Console上輸出的:slow sql 34 millis. SELECT id,name,email,phone FROM user[]
filter.setLogSlowSql(true);
filter.setMergeSql(true);
return filter;
}
@Bean
public ServletRegistrationBean servletRegistrationBean(){
return new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
}
}
application.yml
spring:
druid:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/houses?characterEncoding=UTF-8
username: root
password: root
#最大連接數
maxActive: 30
#最小連接數
minIdle: 5
#獲取連接的最大等待時間
maxWait: 10000
#解決 mysql 8小時的問題,
validationQuery: SELECT 'x'
#空閒連接檢查時間間隔
timeBetweenEvictionRunsMillis: 60000
#空閒連接最小空閒時間
minEvictableIdleTimeMillis: 300000
測試
啓動項目後,可以在瀏覽器輸入 http://localhost:8080/druid 進入druid 爲我們提供的數據監控頁面。