1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

Fix DruidConfiguration

This commit is contained in:
dengchao@xgtl 2020-04-17 16:59:38 +08:00
parent 887260fc23
commit d44b184299
2 changed files with 100 additions and 103 deletions

View File

@ -16,6 +16,7 @@
*/ */
package com.chatopera.cc.config; package com.chatopera.cc.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter; import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@ -28,29 +29,27 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration @Configuration
@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class) @ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true) @ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true)
public class DruidConfiguration { public class DruidConfiguration {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
protected <T> T createDataSource(DataSourceProperties properties, protected <T> T createDataSource(DataSourceProperties properties) {
Class<? extends DataSource> type) { return (T) properties.initializeDataSourceBuilder().type(DruidDataSource.class).build();
return (T) properties.initializeDataSourceBuilder().type(type).build();
} }
/** /**
* @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解
* @param properties 读入的配置 * @param properties 读入的配置
* @return DruidDataSource * @return DruidDataSource
* @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解
*/ */
@SuppressWarnings("JavadocReference")
@Bean @Bean
@ConfigurationProperties("spring.datasource.druid") @ConfigurationProperties("spring.datasource.druid")
public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) { public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) {
com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(properties, com.alibaba.druid.pool.DruidDataSource.class); com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(properties);
DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl()); DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl());
@ -64,39 +63,37 @@ public class DruidConfiguration {
} }
/** /**
* 注册一个StatViewServlet * 注册一个StatViewServlet
* @return */
*/ @Bean
@Bean public ServletRegistrationBean<StatViewServlet> DruidStatViewServle2() {
public ServletRegistrationBean DruidStatViewServle2(){ //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
//org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //添加初始化参数initParams
//添加初始化参数initParams //白名单
//白名单
// servletRegistrationBean.addInitParameter("allow","127.0.0.1"); // servletRegistrationBean.addInitParameter("allow","127.0.0.1");
//IP黑名单 (存在共同时deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. //IP黑名单 (存在共同时deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.
// servletRegistrationBean.addInitParameter("deny","192.168.1.73"); // servletRegistrationBean.addInitParameter("deny","192.168.1.73");
//登录查看信息的账号密码. //登录查看信息的账号密码.
servletRegistrationBean.addInitParameter("loginUsername","admin"); servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword","123456"); servletRegistrationBean.addInitParameter("loginPassword", "123456");
//是否能够重置数据. //是否能够重置数据.
servletRegistrationBean.addInitParameter("resetEnable","false"); servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean; return servletRegistrationBean;
} }
/** /**
* 注册一个filterRegistrationBean * 注册一个filterRegistrationBean
* @return */
*/
@Bean @Bean
public FilterRegistrationBean druidStatFilter2(){ public FilterRegistrationBean<WebStatFilter> druidStatFilter2() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>(new WebStatFilter());
//添加过滤规则. //添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.addUrlPatterns("/*");
//添加不需要忽略的格式信息. //添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*"); filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*");
return filterRegistrationBean; return filterRegistrationBean;
} }
} }

View File

@ -21,7 +21,7 @@ spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=100000 spring.datasource.druid.min-evictable-idle-time-millis=100000
# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2 # \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
#spring.datasource.druid.max-evictable-idle-time-millis= #spring.datasource.druid.max-evictable-idle-time-millis=
spring.datasource.druid.filters=stat,wall,log4j spring.datasource.druid.filters=stat,wall,slf4j
# WebStatFilter\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter # WebStatFilter\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter
spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-stat-filter.url-pattern=/*