package com.tianbo.analysis.bean; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import javax.servlet.Filter; import javax.servlet.Servlet; import javax.sql.DataSource; @Configuration public class DruidConfig { // @Primary // @Bean // @ConfigurationProperties(prefix = "spring.datasource") // public DataSource druidDataSource(){ // return DataSourceBuilder.create().type(DruidDataSource.class).build(); //// return new DruidDataSource(); // } /** * 配置druid在线监控的账号密码 * @return */ @Bean public ServletRegistrationBean<Servlet> druidServlet(){ StatViewServlet statViewServlet = new StatViewServlet(); ServletRegistrationBean<Servlet> srb = new ServletRegistrationBean<>(statViewServlet, "/druid/*"); // 白名单 srb.addInitParameter("allow", "127.0.0.1"); // 黑名单 // srb.addInitParameter("deny", "10.*.*.*"); // 用户名 srb.addInitParameter("loginUsername", "tianbo"); // 密码 srb.addInitParameter("loginPassword", "vmvnv1v2VV."); // 是否可以重置数据源 srb.addInitParameter("resetEnable", "false"); return srb; } // @Bean // public FilterRegistrationBean<Filter> filterRegistrationBean(){ // FilterRegistrationBean<Filter> frb = new FilterRegistrationBean<>(); // WebStatFilter webStatFilter = new WebStatFilter(); // // 所有请求进行监控处理 // frb.setFilter(webStatFilter); // // 排除名单 // frb.addUrlPatterns("/*"); // frb.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"); // return frb; // } // @Bean // PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() { // return new PersistenceExceptionTranslationPostProcessor(); // } // @Bean // public SqlSessionFactoryBean sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception { // SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); // bean.setDataSource(dataSource); // PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); // bean.setMapperLocations(resolver.getResources("classpath:/mapping/*.xml")); // return bean; // } }