This commit is contained in:
xiangwb
2018-05-09 10:22:15 +08:00
parent b9e713710b
commit bf1ca2db28
3 changed files with 77 additions and 28 deletions
@@ -1,9 +1,13 @@
package com.xwbing.druid;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
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;
@@ -18,12 +22,11 @@ import java.sql.SQLException;
* 作者: xiangwb
*/
@Configuration
//@ConfigurationProperties(prefix = "spring.datasource")
@EnableConfigurationProperties(DruidDataSourceModel.class)
public class DruidDataSourceConfig {
@Resource
private DruidDataSourceModel druidDataSourceModel;
private final Logger logger= LoggerFactory.getLogger(DruidDataSourceConfig.class);
private final Logger logger = LoggerFactory.getLogger(DruidDataSourceConfig.class);
@Bean
@Primary
@@ -54,4 +57,30 @@ public class DruidDataSourceConfig {
}
return dataSource;
}
@Bean
public ServletRegistrationBean statViewServlet() {
logger.info("注册druid监控信息显示statViewServlet ======================= ");
ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
registration.addUrlMappings("/druid/*");
//添加初始化参数:initParams
// registration.addInitParameter("allow", "127.0.0.1");//IP白名单(没有配置或者为空,则允许所有访问)
// registration.addInitParameter("deny", "172.17.21.232");//IP黑名单(存在共同时,deny优先于allow)
registration.addInitParameter("loginUsername", "admin");//用户名
registration.addInitParameter("loginPassword", "123456");//密码
registration.addInitParameter("resetEnable", "true");//禁用HTML页面上的"Reset All"功能
return registration;
}
/*servlet*****************************************************filter*/
@Bean
public FilterRegistrationBean webStatFilter() {
logger.info("注册druid监控信息采集webStatFilter ======================= ");
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*");
filterRegistrationBean.addInitParameter("profileEnable", "true");//监控单个url调用的sql列表
return filterRegistrationBean;
}
}
@@ -4,6 +4,7 @@ import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* 说明: 德鲁伊数据源参数模型
* 项目名称: boot-module-demo
@@ -19,19 +20,64 @@ public class DruidDataSourceModel {
private String username;
private String password;
private String driver;
/**
* 初始连接数
*/
private int initSize;
/**
* 最小空闲
*/
private int minIdle;
/**
* 最大连接数
*/
private int maxActive;
/**
* 连接等待超时时间
*/
private int maxWait;
/**
* 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
*/
private int timeBetweenEvictionRunsMillis;
/**
* 配置一个连接在池中最小生存的时间,单位是毫秒
*/
private int minEvictableIdleTimeMillis;
/**
* 用来检测连接是否有效的sql,要求是一个查询语句
*/
private String validationQuery;
/**
* 申请连接的时候检测
*/
private boolean testWhileIdle;
/**
* 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能
*/
private boolean testOnBorrow;
/**
* 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能
*/
private boolean testOnReturn;
/**
* 打开PSCache,mysql5.5以下的版本中没有PSCache功能,建议关闭掉
*/
private boolean poolPreparedStatements;
/**
* 指定每个连接上PSCache的大小
*/
private int maxPoolPreparedStatementPerConnectionSize;
/**
* 配置监控统计拦截的filters
*/
private String filters;
/**
* 慢SQL记录
*/
private String connectionProperties;
/**
* 合并多个DruidDataSource的监控数据
*/
private boolean useGlobalDataSourceStat;
}
@@ -1,7 +1,5 @@
package com.xwbing.configuration;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.xwbing.handler.FormRepeatFilter;
import com.xwbing.util.captcha.CaptchaServlet;
import org.slf4j.Logger;
@@ -29,32 +27,8 @@ public class ServletFilterConfig {
return registration;
}
@Bean
public ServletRegistrationBean statViewServlet() {
logger.info("注册druid监控信息显示statViewServlet ======================= ");
ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
registration.addUrlMappings("/druid/*");
//添加初始化参数:initParams
// registration.addInitParameter("allow", "127.0.0.1");//IP白名单(没有配置或者为空,则允许所有访问)
// registration.addInitParameter("deny", "172.17.21.232");//IP黑名单(存在共同时,deny优先于allow)
registration.addInitParameter("loginUsername", "admin");//用户名
registration.addInitParameter("loginPassword", "123456");//密码
registration.addInitParameter("resetEnable", "true");//禁用HTML页面上的"Reset All"功能
return registration;
}
/*servlet*****************************************************filter*/
@Bean
public FilterRegistrationBean webStatFilter() {
logger.info("注册druid监控信息采集webStatFilter ======================= ");
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*");
filterRegistrationBean.addInitParameter("profileEnable", "true");//监控单个url调用的sql列表
return filterRegistrationBean;
}
@Bean
public FilterRegistrationBean formSaveFilter() {
logger.info("注册表单重复提交过滤器formSaveFilter ======================= ");