| 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; | 
|     } | 
|   | 
|   | 
| } |