mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
1.优化代码&注释;
2.默认不对StatViewServlet和WebStatFilter进行自动配置与原项目保持一致,按需自行决定是否进行自动配置;
This commit is contained in:
+11
-4
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
-22
@@ -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);
|
||||
|
||||
-2
@@ -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 <a href="https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_Druid%E5%92%8CSpring%E5%85%B3%E8%81%94%E7%9B%91%E6%8E%A7%E9%85%8D%E7%BD%AE">Druid和Spring关联监控配置</a>
|
||||
*/
|
||||
|
||||
-2
@@ -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")
|
||||
|
||||
+1
-3
@@ -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 <a href="https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE">StatViewServlet配置</a>
|
||||
*/
|
||||
@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) {
|
||||
|
||||
+2
-4
@@ -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 <a href="https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter">配置WebStatFilter</a>
|
||||
*/
|
||||
@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();
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user