1. 程式人生 > >Springboot整合Druid資料來源

Springboot整合Druid資料來源

yml檔案

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource 
    initialSize: 5
    maxActive: 20  
    maxWait: 60000  
    minIdle: 5
    timeBetweenEvictionRunsMillis: 60000  
    minEvictableIdleTimeMillis: 300000  
    validationQuery: SELECT 'x'  
    testWhileIdle: true  
    testOnBorrow: false  
    testOnReturn: false  
    
#   配置監控統計攔截
    filters: stat,wall
    connectionProperties: druid.stat.mergeSql=true,druid.stat.slowSqlMillis=5000
    useGlobalDataSourceStat: true

java DruidConfig

@Configuration
public class DruidConfig {

	@ConfigurationProperties(prefix = "spring.datasource")
	@Bean
	public DataSource druid() {
		return new DruidDataSource();
	}

	/**
	 * 向容器新增狀態檢視servlet
	 * 
	 * @return
	 */
	@Bean
	public ServletRegistrationBean<Servlet> statViewServlet() {
		ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
		Map<String, String> map = new HashMap<>();
		map.put("loginUsername", "admin");
		map.put("loginPassword", "123456");
		map.put("allow", "");// 預設允許所有訪問
		bean.setInitParameters(map);
		return bean;
	}

	/**
	 * 向容器新增web狀態過濾器
	 * 
	 * @return
	 */
	@Bean
	public FilterRegistrationBean<Filter> webStatFilter() {
		FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
		bean.setFilter(new WebStatFilter());
		Map<String, String> map = new HashMap<>();
		map.put("exclusions", "*. js ,*. gif ,*. jpg ,*. png ,*. css ,*. ico ,/druid/*");
		bean.setInitParameters(map);
		bean.setUrlPatterns(Arrays.asList("/*"));
		return bean;
	}

}

以 localhost:port/context/druid 訪問控制檯,登入名為admin,密碼為123456