From a68d96df4db8e95e7e5ecbc88899435dd99226a1 Mon Sep 17 00:00:00 2001
From: lihengming <89921218@qq.com>
Date: Wed, 3 May 2017 15:00:31 +0800
Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81&?=
=?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=9B=202.=E9=BB=98=E8=AE=A4=E4=B8=8D?=
=?UTF-8?q?=E5=AF=B9StatViewServlet=E5=92=8CWebStatFilter=E8=BF=9B?=
=?UTF-8?q?=E8=A1=8C=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE=E4=B8=8E=E5=8E=9F?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4=EF=BC=8C?=
=?UTF-8?q?=E6=8C=89=E9=9C=80=E8=87=AA=E8=A1=8C=E5=86=B3=E5=AE=9A=E6=98=AF?=
=?UTF-8?q?=E5=90=A6=E8=BF=9B=E8=A1=8C=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE?=
=?UTF-8?q?=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DruidDataSourceAutoConfigure.java | 15 ++++--
.../autoconfigure/DruidDataSourceBuilder.java | 22 ---------
.../DruidSpringAopConfiguration.java | 2 -
.../autoconfigure/DruidStatProperties.java | 2 -
.../DruidStatViewServletConfiguration.java | 4 +-
...a => DruidWebStatFilterConfiguration.java} | 6 +--
.../resources/config/application.properties | 15 +++---
src/test/resources/config/template.properties | 46 +++++++++----------
8 files changed, 46 insertions(+), 66 deletions(-)
rename src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/{DruidStatFilterConfiguration.java => DruidWebStatFilterConfiguration.java} (92%)
diff --git a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java
index 65c1842bdf..aa61a3a9c0 100644
--- a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java
+++ b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java
@@ -26,16 +26,15 @@ import org.springframework.context.annotation.Import;
import org.springframework.core.env.Environment;
import javax.sql.DataSource;
+import java.sql.SQLException;
/**
- * The Druid data source auto configure.
- *
* @author lihengming<89921218@qq.com>
*/
@Configuration
@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)
@EnableConfigurationProperties(DruidStatProperties.class)
-@Import({DruidSpringAopConfiguration.class, DruidStatViewServletConfiguration.class, DruidStatFilterConfiguration.class})
+@Import({DruidSpringAopConfiguration.class, DruidStatViewServletConfiguration.class, DruidWebStatFilterConfiguration.class})
public class DruidDataSourceAutoConfigure {
@Bean
@@ -44,7 +43,7 @@ public class DruidDataSourceAutoConfigure {
public DataSource dataSource(Environment env) {
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
- //if not found prefix spring.datasource.druid property,spring.datasource prefix property will be used
+ //if not found prefix 'spring.datasource.druid' property,'spring.datasource' prefix property will be used
if (dataSource.getUsername() == null) {
dataSource.setUsername(env.getProperty("spring.datasource.username"));
}
@@ -57,6 +56,14 @@ public class DruidDataSourceAutoConfigure {
if (dataSource.getDriverClassName() == null) {
dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
}
+ //if not found 'spring.datasource.druid.filters' property will set default value on StatViewServlet Enabled
+ if (env.getProperty("spring.datasource.druid.filters") == null && "true".equals(env.getProperty("spring.datasource.druid.StatViewServlet.enabled"))) {
+ try {
+ dataSource.setFilters("stat");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
return dataSource;
}
}
diff --git a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceBuilder.java b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceBuilder.java
index 63eacebec3..52f2d943c6 100644
--- a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceBuilder.java
+++ b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidDataSourceBuilder.java
@@ -25,8 +25,6 @@ import java.util.HashMap;
import java.util.Map;
/**
- * The Druid data source builder.
- *
* @author lihengming<89921218@qq.com>
*/
public class DruidDataSourceBuilder {
@@ -44,26 +42,6 @@ public class DruidDataSourceBuilder {
return dataSource;
}
- public DruidDataSourceBuilder url(String url) {
- this.properties.put("url", url);
- return this;
- }
-
- public DruidDataSourceBuilder driverClassName(String driverClassName) {
- this.properties.put("driverClassName", driverClassName);
- return this;
- }
-
- public DruidDataSourceBuilder username(String username) {
- this.properties.put("username", username);
- return this;
- }
-
- public DruidDataSourceBuilder password(String password) {
- this.properties.put("password", password);
- return this;
- }
-
//use RelaxedDataBinder by reflection config druid .
private void bind(DruidDataSource result) {
MutablePropertyValues properties = new MutablePropertyValues(this.properties);
diff --git a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidSpringAopConfiguration.java b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidSpringAopConfiguration.java
index 98ac4e7545..44a7788e12 100644
--- a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidSpringAopConfiguration.java
+++ b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidSpringAopConfiguration.java
@@ -25,8 +25,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
/**
- * The Druid spring aop configuration.
- *
* @author lihengming<89921218@qq.com>
* @see Druid和Spring关联监控配置
*/
diff --git a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatProperties.java b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatProperties.java
index 3e050c4af3..1dd58d8195 100644
--- a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatProperties.java
+++ b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatProperties.java
@@ -18,8 +18,6 @@ package com.alibaba.druid.support.spring.boot.autoconfigure;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
- * The type Druid stat properties.
- *
* @author lihengming<89921218@qq.com>
*/
@ConfigurationProperties("spring.datasource.druid")
diff --git a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatViewServletConfiguration.java b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatViewServletConfiguration.java
index bfb60b8d03..46ef792391 100644
--- a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatViewServletConfiguration.java
+++ b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatViewServletConfiguration.java
@@ -21,12 +21,10 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
/**
- * The Druid stat view servlet configuration.
- *
* @author lihengming<89921218@qq.com>
* @see StatViewServlet配置
*/
-@ConditionalOnProperty(name = "spring.datasource.druid.StatViewServlet.enabled", havingValue = "true", matchIfMissing = true)
+@ConditionalOnProperty(name = "spring.datasource.druid.StatViewServlet.enabled", havingValue = "true", matchIfMissing = false)
public class DruidStatViewServletConfiguration {
@Bean
public ServletRegistrationBean servletRegistrationBean(DruidStatProperties properties) {
diff --git a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatFilterConfiguration.java b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidWebStatFilterConfiguration.java
similarity index 92%
rename from src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatFilterConfiguration.java
rename to src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidWebStatFilterConfiguration.java
index 06669f36aa..e63be121da 100644
--- a/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidStatFilterConfiguration.java
+++ b/src/main/java/com/alibaba/druid/support/spring/boot/autoconfigure/DruidWebStatFilterConfiguration.java
@@ -21,13 +21,11 @@ import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
/**
- * The Druid stat filter configuration.
- *
* @author lihengming<89921218@qq.com>
* @see 配置WebStatFilter
*/
-@ConditionalOnProperty(name = "spring.datasource.druid.StatFilter.enabled", havingValue = "true", matchIfMissing = true)
-public class DruidStatFilterConfiguration {
+@ConditionalOnProperty(name = "spring.datasource.druid.WebStatFilter.enabled", havingValue = "true", matchIfMissing = false)
+public class DruidWebStatFilterConfiguration {
@Bean
public FilterRegistrationBean filterRegistrationBean(DruidStatProperties properties) {
DruidStatProperties.StatFilter config = properties.getStatFilter();
diff --git a/src/test/resources/config/application.properties b/src/test/resources/config/application.properties
index 3235bfbed0..d254f0f181 100644
--- a/src/test/resources/config/application.properties
+++ b/src/test/resources/config/application.properties
@@ -1,16 +1,19 @@
-# 数据源基础配置,请修改为你的JDBC配置
+# \u6570\u636E\u6E90\u57FA\u7840\u914D\u7F6E
spring.datasource.druid.url=jdbc:mysql://localhost:3306/your-db
spring.datasource.druid.username=your-username
spring.datasource.druid.password=your-password
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
-# Druid配置,自行增删配置
-spring.datasource.druid.maxActive=20
-spring.datasource.druid.filters=stat,wall,log4j
+#\u542F\u7528Druid\u7684\u5185\u7F6E\u76D1\u63A7\u9875\u9762
+spring.datasource.druid.StatViewServlet.enabled=true
+#\u542F\u7528Web\u5173\u8054\u76D1\u63A7\u914D\u7F6E
+spring.datasource.druid.WebStatFilter.enabled=true
+#\u542F\u7528Spring\u5173\u8054\u76D1\u63A7\u914D\u7F6E
spring.datasource.druid.aop-patterns=com.alibaba.druid.spring.boot.autoconfigure.service.*
+#spring.datasource.druid.maxActive=20
+#spring.datasource.druid.filters=stat,wall,log4j
#spring.datasource.druid.StatViewServlet.loginUsername=admin
#spring.datasource.druid.StatViewServlet.loginPassword=123456
# JPA
spring.jpa.show-sql= true
spring.jpa.hibernate.ddl-auto=create-drop
-# 如果spring.datasource.druid.aop-patterns要代理的类没有定义interface请设置spring.aop.proxy-target-class=true
-# spring.aop.proxy-target-class=true
+
diff --git a/src/test/resources/config/template.properties b/src/test/resources/config/template.properties
index 19e26b176a..224408ee82 100644
--- a/src/test/resources/config/template.properties
+++ b/src/test/resources/config/template.properties
@@ -1,10 +1,10 @@
-######Druid连接池配置######
-# 数据源基础配置
-spring.datasource.url= #key也可以为也可以spring.datasource.druid.url
-spring.datasource.username= #key也可以为也可以spring.datasource.druid.username
-spring.datasource.password= #key也可以为也可以spring.datasource.druid.password
-spring.datasource.driver-class-name= #key也可以为也可以spring.datasource.druid.driver-class-name,非必填项可通过url解析
-#下面配置说明请参考Druid Github Wiki,配置_DruidDataSource参考配置
+######Druid\u8FDE\u63A5\u6C60\u914D\u7F6E######
+# \u6570\u636E\u6E90\u57FA\u7840\u914D\u7F6E
+spring.datasource.url= #key\u4E5F\u53EF\u4EE5\u4E3Aspring.datasource.druid.url
+spring.datasource.username= #key\u4E5F\u53EF\u4EE5\u4E3Aspring.datasource.druid.username
+spring.datasource.password= #key\u4E5F\u53EF\u4EE5\u4E3Aspring.datasource.druid.password
+spring.datasource.driver-class-name= #key\u4E5F\u53EF\u4EE5\u4E3Aspring.datasource.druid.driver-class-name\uFF0C\u975E\u5FC5\u586B\u9879\u53EF\u901A\u8FC7url\u89E3\u6790
+#\u4E0B\u9762\u914D\u7F6E\u8BF4\u660E\u8BF7\u53C2\u8003Druid Github Wiki\uFF0C\u914D\u7F6E_DruidDataSource\u53C2\u8003\u914D\u7F6E
spring.datasource.druid.initialSize=
spring.datasource.druid.minIdle=
spring.datasource.druid.maxActive=
@@ -17,26 +17,26 @@ spring.datasource.druid.testOnBorrow=
spring.datasource.druid.testOnReturn=
spring.datasource.druid.poolPreparedStatements=
spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=
-spring.datasource.druid.filters= #默认值stat,配置多个英文逗号分隔
+spring.datasource.druid.filters= #\u9ED8\u8BA4\u503Cstat\uFF0C\u914D\u7F6E\u591A\u4E2A\u82F1\u6587\u9017\u53F7\u5206\u9694
-######Druid监控配置######
-#下面配置说明请参考Druid Github Wiki,配置_配置WebStatFilter
-spring.datasource.druid.StatFilter.enabled= #是否启用StatFilter默认值true
-spring.datasource.druid.StatFilter.urlPattern=
-spring.datasource.druid.StatFilter.exclusions=
-spring.datasource.druid.StatFilter.sessionStatMaxCount=
-spring.datasource.druid.StatFilter.sessionStatEnable=
-spring.datasource.druid.StatFilter.principalSessionName=
-spring.datasource.druid.StatFilter.principalCookieName=
-spring.datasource.druid.StatFilter.profileEnable=
-#下面配置说明请参考Druid Github Wiki,配置_StatViewServlet配置
-spring.datasource.druid.StatViewServlet.enabled= #是否启用StatViewServlet默认值true
+######Druid\u76D1\u63A7\u914D\u7F6E######
+#\u4E0B\u9762\u914D\u7F6E\u8BF4\u660E\u8BF7\u53C2\u8003Druid Github Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter
+spring.datasource.druid.WebStatFilter.enabled= #\u662F\u5426\u542F\u7528StatFilter\u9ED8\u8BA4\u503Ctrue
+spring.datasource.druid.WebStatFilter.urlPattern=
+spring.datasource.druid.WebStatFilter.exclusions=
+spring.datasource.druid.WebStatFilter.sessionStatMaxCount=
+spring.datasource.druid.WebStatFilter.sessionStatEnable=
+spring.datasource.druid.WebStatFilter.principalSessionName=
+spring.datasource.druid.WebStatFilter.principalCookieName=
+spring.datasource.druid.WebStatFilter.profileEnable=
+#\u4E0B\u9762\u914D\u7F6E\u8BF4\u660E\u8BF7\u53C2\u8003Druid Github Wiki\uFF0C\u914D\u7F6E_StatViewServlet\u914D\u7F6E
+spring.datasource.druid.StatViewServlet.enabled= #\u662F\u5426\u542F\u7528StatViewServlet\u9ED8\u8BA4\u503Ctrue
spring.datasource.druid.StatViewServlet.urlPattern=
spring.datasource.druid.StatViewServlet.resetEnable=
spring.datasource.druid.StatViewServlet.loginUsername=
spring.datasource.druid.StatViewServlet.loginPassword=
spring.datasource.druid.StatViewServlet.allow=
spring.datasource.druid.StatViewServlet.deny=
-#下面配置说明请参考Druid Github Wiki,配置_配置WebStatFilter
-spring.datasource.druid.aop-patterns= #Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
-#如果spring.datasource.druid.aop-patterns要代理的类没有定义interface请设置spring.aop.proxy-target-class=true
+#\u4E0B\u9762\u914D\u7F6E\u8BF4\u660E\u8BF7\u53C2\u8003Druid Github Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter
+spring.datasource.druid.aop-patterns= #Spring\u76D1\u63A7AOP\u5207\u5165\u70B9\uFF0C\u5982x.y.z.service.*,\u914D\u7F6E\u591A\u4E2A\u82F1\u6587\u9017\u53F7\u5206\u9694
+#\u5982\u679Cspring.datasource.druid.aop-patterns\u8981\u4EE3\u7406\u7684\u7C7B\u6CA1\u6709\u5B9A\u4E49interface\u8BF7\u8BBE\u7F6Espring.aop.proxy-target-class=true