|
|
package com.yuxue.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;
|
|
|
|
|
|
/**
|
|
|
* druid连接池的配置,配置如何处理慢sql,
|
|
|
*/
|
|
|
@Configuration
|
|
|
public class DruidConfig {
|
|
|
|
|
|
// 这个注解读取配置文件前缀为prefix的配置,将外部的配置文件与这里绑定
|
|
|
// 容器的开启与关闭
|
|
|
@ConfigurationProperties(prefix = "spring.druid")
|
|
|
@Bean(initMethod = "init", destroyMethod = "close")
|
|
|
public DruidDataSource dataSource() {
|
|
|
DruidDataSource dataSource = new DruidDataSource();
|
|
|
dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
|
|
|
return dataSource;
|
|
|
}
|
|
|
|
|
|
// bean注解,成为spring的bean,利用filter将慢sql的日志打印出来
|
|
|
//@Bean
|
|
|
public Filter statFilter() {
|
|
|
StatFilter statFilter = new StatFilter();
|
|
|
// 多长时间定义为慢sql,这里定义为5s
|
|
|
statFilter.setSlowSqlMillis(5000);
|
|
|
// 是否打印出慢日志
|
|
|
statFilter.setLogSlowSql(true);
|
|
|
// 是否将日志合并起来
|
|
|
statFilter.setMergeSql(true);
|
|
|
return statFilter;
|
|
|
}
|
|
|
|
|
|
// 这是配置druid的监控
|
|
|
@Bean
|
|
|
public ServletRegistrationBean servletRegistrationBean() {
|
|
|
return new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
|
|
|
}
|
|
|
|
|
|
}
|