package net.lab1024.smartadmin.config; import lombok.extern.slf4j.Slf4j; /** * [ 数据源配置 ] * * @author yandanyang * @version 1.0 * @company 1024lab.net * @copyright (c) 2019 1024lab.netInc. All rights reserved. * @date * @since JDK1.8 */ @Slf4j //@Configuration public class SmartDruidDataSourceConfig { // // @Value("${spring.datasource.dynamic.datasource.master.driver-class-name}") // String driver; // // @Value("${spring.datasource.dynamic.datasource.master.url}") // String url; // // @Value("${spring.datasource.dynamic.datasource.master.username}") // String username; // // @Value("${spring.datasource.dynamic.datasource.master.password}") // String password; // // @Value("${spring.datasource.initial-size}") // int initialSize; // // @Value("${spring.datasource.min-idle}") // int minIdle; // // @Value("${spring.datasource.max-active}") // int maxActive; // // @Value("${spring.datasource.max-wait}") // long maxWait; // // @Value("${spring.datasource.time-between-eviction-runs-millis}") // long timeBetweenEvictionRunsMillis; // // @Value("${spring.datasource.min-evictable-idle-time-millis}") // long minEvictableIdleTimeMillis; // // @Value("${spring.datasource.filters}") // String filters; // // @Value("${spring.datasource.druid.username}") // String druidUserName; // // @Value("${spring.datasource.druid.password}") // String druidPassword; // // @Value("${spring.datasource.druid.login.enabled}") // boolean druidLoginEnable; // // @Autowired // private StatFilter logSlowSql; // // @Autowired // private DruidStatInterceptor druidStatInterceptor; // // @Bean // @Primary // public DataSource druidDataSource() { // DruidDataSource druidDataSource = new DruidDataSource(); // druidDataSource.setDbType(JdbcConstants.MYSQL); // druidDataSource.setDriverClassName(driver); // druidDataSource.setUrl(url); // druidDataSource.setUsername(username); // druidDataSource.setPassword(password); // druidDataSource.setInitialSize(initialSize); // druidDataSource.setMinIdle(minIdle); // druidDataSource.setMaxActive(maxActive); // druidDataSource.setMaxWait(maxWait); // druidDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); // druidDataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); // try { // druidDataSource.setFilters(filters); // ArrayList arrayList = new ArrayList<>(); // arrayList.add(logSlowSql); // druidDataSource.setProxyFilters(arrayList); // druidDataSource.init(); // } catch (SQLException e) { // log.error("初始化数据源出错", e); // } // // return druidDataSource; // } // // @Bean // public ServletRegistrationBean druidServlet() { // ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(); // servletRegistrationBean.setServlet(new StatViewServlet()); // servletRegistrationBean.addUrlMappings("/druid/*"); // Map initParameters = new HashMap(); // //不设置用户名密码可以直接通过druid/index.html访问 // if (druidLoginEnable) { // initParameters.put("loginUsername", druidUserName); // initParameters.put("loginPassword", druidPassword); // } // initParameters.put("resetEnable", "false"); // servletRegistrationBean.setInitParameters(initParameters); // return servletRegistrationBean; // } // // @Bean // public FilterRegistrationBean filterRegistrationBean() { // FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); // filterRegistrationBean.setFilter(new WebStatFilter()); // filterRegistrationBean.addUrlPatterns("/*"); // filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); // return filterRegistrationBean; // } // // @Bean // public StatFilter logSlowSql() { // StatFilter statFilter = new StatFilter(); // statFilter.setMergeSql(true); // statFilter.setSlowSqlMillis(300); // statFilter.setLogSlowSql(true); // return statFilter; // } // // @Bean(name = "druid-stat-interceptor") // public DruidStatInterceptor druidStatInterceptor() { // DruidStatInterceptor dsInterceptor = new DruidStatInterceptor(); // return dsInterceptor; // } // // @Bean // public JdkRegexpMethodPointcut jdkRegexpMethodPointcut() { // JdkRegexpMethodPointcut jdkRegexpMethodPointcut = new JdkRegexpMethodPointcut(); // jdkRegexpMethodPointcut.setPatterns("net.lab1024.smartadmin.module..*Service.*"); // return jdkRegexpMethodPointcut; // } // // @Bean // public DefaultPointcutAdvisor defaultPointcutAdvisor() { // DefaultPointcutAdvisor pointcutAdvisor = new DefaultPointcutAdvisor(); // pointcutAdvisor.setPointcut(jdkRegexpMethodPointcut()); // pointcutAdvisor.setAdvice(druidStatInterceptor); // return pointcutAdvisor; // } }