package com.matrix.config; 
 | 
  
 | 
import com.alibaba.druid.filter.Filter; 
 | 
import com.alibaba.druid.pool.DruidDataSource; 
 | 
import com.alibaba.druid.support.http.StatViewServlet; 
 | 
import com.alibaba.druid.support.http.WebStatFilter; 
 | 
import com.alibaba.druid.wall.WallConfig; 
 | 
import com.alibaba.druid.wall.WallFilter; 
 | 
import org.mybatis.spring.annotation.MapperScan; 
 | 
import org.springframework.boot.context.properties.ConfigurationProperties; 
 | 
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 javax.sql.DataSource; 
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @author jiangyouyao 
 | 
 * @description 数据源配置类 
 | 
 * @date 2018-11-26 15:50 
 | 
 */ 
 | 
@MapperScan(value = { "com.xincheng.**.dao","com.matrix.**.dao"}) 
 | 
@Configuration 
 | 
public class DataSourceConfig { 
 | 
  
 | 
    /** 
 | 
     * 数据源配置 
 | 
     * 
 | 
     * @return 
 | 
     * @author jiangyouyao 
 | 
     */ 
 | 
    @ConfigurationProperties(prefix = "spring.datasource") 
 | 
    @Bean 
 | 
    public DataSource druid() { 
 | 
  
 | 
        DruidDataSource druidDataSource = new DruidDataSource(); 
 | 
  
 | 
        List<Filter> filters = new ArrayList<>(); 
 | 
        filters.add(wallFilter()); 
 | 
        druidDataSource.setProxyFilters(filters); 
 | 
  
 | 
        return druidDataSource; 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 注册一个StatViewServlet 
 | 
     * @return 
 | 
     */ 
 | 
    @Bean 
 | 
    public ServletRegistrationBean druidStatViewServlet(){ 
 | 
        //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. 
 | 
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); 
 | 
  
 | 
        //添加初始化参数:initParams 
 | 
        //白名单: 
 | 
        servletRegistrationBean.addInitParameter("allow",""); 
 | 
        //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. 
 | 
        //servletRegistrationBean.addInitParameter("deny",""); 
 | 
        //登录查看信息的账号密码. 
 | 
        /*servletRegistrationBean.addInitParameter("loginUsername","xc_erp_scop"); 
 | 
        servletRegistrationBean.addInitParameter("loginPassword","xc_erp_scop");*/ 
 | 
        //是否能够重置数据. 
 | 
        servletRegistrationBean.addInitParameter("resetEnable","false"); 
 | 
        return servletRegistrationBean; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 注册一个:filterRegistrationBean 
 | 
     * @return 
 | 
     */ 
 | 
    @Bean 
 | 
    public FilterRegistrationBean druidStatFilter(){ 
 | 
  
 | 
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); 
 | 
  
 | 
        //添加过滤规则. 
 | 
        filterRegistrationBean.addUrlPatterns("/*"); 
 | 
  
 | 
        //添加不需要忽略的格式信息. 
 | 
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); 
 | 
        return filterRegistrationBean; 
 | 
    } 
 | 
  
 | 
    @Bean 
 | 
    public WallFilter wallFilter(){ 
 | 
        WallFilter wallFilter = new WallFilter(); 
 | 
        wallFilter.setConfig(wallConfig()); 
 | 
        return wallFilter; 
 | 
    } 
 | 
  
 | 
    @Bean 
 | 
    public WallConfig wallConfig() { 
 | 
        WallConfig config = new WallConfig(); 
 | 
        config.setMultiStatementAllow(true);//允许一次执行多条语句 
 | 
        config.setNoneBaseStatementAllow(true);//允许一次执行多条语句 
 | 
        return config; 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |