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