From bf1ca2db28bf54ffa25bb76ce11a10bab9002af9 Mon Sep 17 00:00:00 2001 From: xiangwb Date: Wed, 9 May 2018 10:22:15 +0800 Subject: [PATCH] merge --- .../xwbing/druid/DruidDataSourceConfig.java | 33 ++++++++++++- .../xwbing/druid/DruidDataSourceModel.java | 46 +++++++++++++++++++ .../configuration/ServletFilterConfig.java | 26 ----------- 3 files changed, 77 insertions(+), 28 deletions(-) diff --git a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java b/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java index a136041..ad51a60 100644 --- a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java +++ b/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceConfig.java @@ -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; + } } diff --git a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java b/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java index 5ef0f21..7bc633e 100644 --- a/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java +++ b/boot-service/src/main/java/com/xwbing/druid/DruidDataSourceModel.java @@ -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; } diff --git a/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java b/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java index 878d4c0..89cfcc0 100644 --- a/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java +++ b/boot-web/src/main/java/com/xwbing/configuration/ServletFilterConfig.java @@ -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 ======================= ");