| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package cn.com.goldenwater.dcproj.config;
- import com.alibaba.druid.pool.DruidDataSource;
- import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
- 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 org.springframework.context.annotation.Primary;
- import org.springframework.core.env.Environment;
- import javax.servlet.Filter;
- import javax.servlet.Servlet;
- import javax.sql.DataSource;
- import java.util.*;
- @Configuration
- @MapperScan("cn.com.goldenwater.dcproj.dao")
- public class DruidConfiguration {
- @Bean(name = "dataSource")
- @ConfigurationProperties(prefix = "spring.datasource.druid")
- @Primary
- public DataSource testDataSource(Environment environment) {
- return DruidDataSourceBuilder
- .create()
- .build(environment, "spring.datasource.druid.");
- }
- //使用连接池dataSource
- //导入durid数据源
- // @ConfigurationProperties(prefix = "spring.datasource")
- // @Bean
- // public DataSource druid() {
- // DruidDataSource druidDataSource = new DruidDataSource();
- // List filterList = new ArrayList<>();
- // //filterList.add(wallFilter());
- // druidDataSource.setProxyFilters(filterList);
- // //return druidDataSource;
- // return new DruidDataSource();
- // }
- //如果需要开启wall监控,同时允许multiStatementAllow,就不要在application.yml中配置filter,自己定义
- //否则会出现异常:Cause: java.sql.SQLException: sql injection violation, multi-statement not allow :
- // @Bean
- // public WallFilter wallFilter() {
- // WallFilter wallFilter = new WallFilter();//配置一个监控的filter
- // wallFilter.setConfig(wallConfig());//导入我们的配置
- // return wallFilter;
- // }
- //
- // @Bean
- // public WallConfig wallConfig() {
- // WallConfig config = new WallConfig();
- // config.setMultiStatementAllow(true);//允许一次执行多条语句
- // config.setNoneBaseStatementAllow(true);//允许非基本语句的其他语句
- // return config;
- // }
- //配置监控
- //1、先配置管理后台的servLet,访问的入口为/druid/
- @Bean
- public ServletRegistrationBean statViewServlet() {
- ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
- Map<String, String> map = new HashMap<>(5);
- map.put("resetEnable", "false");
- map.put("loginUsername", "gw_admin");
- map.put("loginPassword", "gw_Sldc_123");
- map.put("allow", "127.0.0.1");
- map.put("deny", "");
- bean.setInitParameters(map);
- return bean;
- }
- //2、配置WEB监控的filter
- @Bean
- public FilterRegistrationBean webStatFilter() {
- FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
- bean.setFilter(new WebStatFilter());
- Map<String, String> map = new HashMap<>();
- map.put("exclusions", "*.js,*.css,/druid/*");
- //拦截所有请求
- bean.setUrlPatterns(Arrays.asList("/*"));
- bean.setInitParameters(map);
- return bean;
- }
- }
|