package com.ard.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; /** * @Description: druid连接池的配置,配置如何处理慢sql, * @ClassName: DruidConfig * @Author: 刘苏义 * @Date: 2023年07月04日15:29 * @Version: 1.0 **/ @Configuration public class DruidConfig { //这个注解读取配置文件前缀为prefix的配置,将外部的配置文件与这里绑定 @ConfigurationProperties(prefix = "spring.datasource.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的监控 //这是配置druid的监控与配置文件中功能一样 //#stat-view-servlet: // #enabled:true // @Bean // public ServletRegistrationBean servletRegistrationBean(){ // return new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); // } }