diff --git a/druid-spring-boot/druid-spring-boot-autoconfigure/pom.xml b/druid-spring-boot/druid-spring-boot-autoconfigure/pom.xml
index 7a4bba6..333b02a 100644
--- a/druid-spring-boot/druid-spring-boot-autoconfigure/pom.xml
+++ b/druid-spring-boot/druid-spring-boot-autoconfigure/pom.xml
@@ -17,15 +17,15 @@
org.springframework.boot
spring-boot-autoconfigure
-
- org.slf4j
- slf4j-api
-
org.springframework.boot
spring-boot-configuration-processor
true
+
+ org.slf4j
+ slf4j-api
+
org.springframework
spring-jdbc
diff --git a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidAutoConfiguration.java b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidAutoConfiguration.java
index 02b187d..d23bed0 100644
--- a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidAutoConfiguration.java
+++ b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidAutoConfiguration.java
@@ -13,6 +13,7 @@ import com.github.trang.druid.autoconfigure.properties.DruidDataSourceProperties
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
@@ -38,6 +39,7 @@ import static com.github.trang.druid.autoconfigure.properties.DruidDataSourcePro
public class DruidAutoConfiguration {
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_STAT_FILTER_PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true)
@ConfigurationProperties(prefix = DRUID_STAT_FILTER_PREFIX)
public StatFilter statFilter() {
@@ -46,6 +48,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_WALL_FILTER_PREFIX, name = "enabled", havingValue = "true")
@ConfigurationProperties(prefix = DRUID_WALL_CONFIG_PREFIX)
public WallConfig wallConfig() {
@@ -53,6 +56,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_WALL_FILTER_PREFIX, name = "enabled", havingValue = "true")
@ConfigurationProperties(prefix = DRUID_WALL_FILTER_PREFIX)
public WallFilter wallFilter(WallConfig wallConfig) {
@@ -63,6 +67,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_CONFIG_FILTER_PREFIX, name = "enabled", havingValue = "true")
public ConfigFilter configFilter() {
log.debug("druid config-filter init...");
@@ -70,6 +75,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_SLF4J_FILTER_PREFIX, name = "enabled", havingValue = "true")
@ConfigurationProperties(prefix = DRUID_SLF4J_FILTER_PREFIX)
public Slf4jLogFilter slf4jLogFilter() {
@@ -78,6 +84,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_LOG4J_FILTER_PREFIX, name = "enabled", havingValue = "true")
@ConfigurationProperties(prefix = DRUID_LOG4J_FILTER_PREFIX)
public Log4jFilter log4jFilter() {
@@ -86,6 +93,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_LOG4J2_FILTER_PREFIX, name = "enabled", havingValue = "true")
@ConfigurationProperties(prefix = DRUID_LOG4J2_FILTER_PREFIX)
public Log4j2Filter log4j2Filter() {
@@ -94,6 +102,7 @@ public class DruidAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = DRUID_COMMONS_LOG_FILTER_PREFIX, name = "enabled", havingValue = "true")
@ConfigurationProperties(prefix = DRUID_COMMONS_LOG_FILTER_PREFIX)
public CommonsLogFilter commonsLogFilter() {
diff --git a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidServletConfiguration.java b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidServletConfiguration.java
index f93a6f6..c9de70e 100644
--- a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidServletConfiguration.java
+++ b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidServletConfiguration.java
@@ -36,9 +36,9 @@ public class DruidServletConfiguration {
* 2. 提供监控信息的 JSON API
*/
@Bean
- public ServletRegistrationBean servletRegistrationBean(DruidDataSourceProperties druidDataSourceProperties) {
+ public ServletRegistrationBean servletRegistrationBean(DruidDataSourceProperties druidProperties) {
log.debug("druid stat-view-servlet init...");
- DruidStatViewServletProperties properties = druidDataSourceProperties.getStatViewServlet();
+ DruidStatViewServletProperties properties = druidProperties.getStatViewServlet();
ServletRegistrationBean registration = new ServletRegistrationBean<>(new StatViewServlet());
registration.addUrlMappings(properties.getUrlMappings());
if (!StringUtils.isEmpty(properties.getLoginUsername())) {
diff --git a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidStatConfiguration.java b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidStatConfiguration.java
index 5c0d8ab..43c8b42 100644
--- a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidStatConfiguration.java
+++ b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/DruidStatConfiguration.java
@@ -48,9 +48,9 @@ public class DruidStatConfiguration {
}
@Bean
- public RegexpMethodPointcutAdvisor druidStatAdvisor(DruidDataSourceProperties druidDataSourceProperties,
+ public RegexpMethodPointcutAdvisor druidStatAdvisor(DruidDataSourceProperties druidProperties,
DruidStatInterceptor druidStatInterceptor) {
- DruidAopStatProperties properties = druidDataSourceProperties.getAopStat();
+ DruidAopStatProperties properties = druidProperties.getAopStat();
return new RegexpMethodPointcutAdvisor(properties.getPatterns(), druidStatInterceptor);
}
@@ -74,9 +74,9 @@ public class DruidStatConfiguration {
public static class DruidWebStatConfiguration {
@Bean
- public FilterRegistrationBean filterRegistrationBean(DruidDataSourceProperties druidDataSourceProperties) {
+ public FilterRegistrationBean filterRegistrationBean(DruidDataSourceProperties druidProperties) {
log.debug("druid web-stat-filter init...");
- DruidWebStatProperties properties = druidDataSourceProperties.getWebStat();
+ DruidWebStatProperties properties = druidProperties.getWebStat();
FilterRegistrationBean registration = new FilterRegistrationBean<>(new WebStatFilter());
registration.addUrlPatterns(properties.getUrlPatterns());
registration.addInitParameter("exclusions", properties.getExclusions());
diff --git a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/AbstractDruidDataSource2.java b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/AbstractDruidDataSource2.java
index 4142229..484c9a8 100644
--- a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/AbstractDruidDataSource2.java
+++ b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/AbstractDruidDataSource2.java
@@ -13,11 +13,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import java.util.Optional;
-import static com.github.trang.druid.autoconfigure.properties.DruidDataSourceProperties.DruidConstants.DRUID_DATA_SOURCE_PREFIX;
+import static com.github.trang.druid.autoconfigure.properties.DruidDataSourceProperties.DruidConstants.*;
/**
* Druid 多数据源支持,会自动注入 'spring.datasource' 和 'spring.datasource.druid' 配置
@@ -32,7 +32,7 @@ public abstract class AbstractDruidDataSource2 extends DruidDataSource {
@Autowired
private DataSourceProperties dataSourceProperties;
@Autowired
- private DruidDataSourceProperties druidDataSourceProperties;
+ private DruidDataSourceProperties druidProperties;
@Autowired
private ObjectProvider> druidFilters;
@@ -59,7 +59,7 @@ public abstract class AbstractDruidDataSource2 extends DruidDataSource {
}
private void initConfigFilterProperties() {
- DruidConfigFilterProperties configFilterProperties = druidDataSourceProperties.getConfig();
+ DruidConfigFilterProperties configFilterProperties = druidProperties.getConfig();
if (configFilterProperties.isEnabled()) {
StringBuilder builder = new StringBuilder();
builder.append(ConfigFilter.CONFIG_DECRYPT).append("=").append("true").append(";");
@@ -76,12 +76,10 @@ public abstract class AbstractDruidDataSource2 extends DruidDataSource {
private void initFilters() {
List proxyFilters = super.getProxyFilters();
- Optional.of(druidFilters.getIfAvailable())
- .filter(filters -> !filters.isEmpty())
- .ifPresent(filters -> filters.stream()
+ druidFilters.getIfAvailable(ArrayList::new).stream()
.filter(Objects::nonNull)
.filter(filter -> !proxyFilters.contains(filter))
- .forEach(proxyFilters::add));
+ .forEach(proxyFilters::add);
}
}
\ No newline at end of file
diff --git a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/init/DataSourceInitializer.java b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/init/DataSourceInitializer.java
index 669f1c6..011c46b 100644
--- a/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/init/DataSourceInitializer.java
+++ b/druid-spring-boot/druid-spring-boot-autoconfigure/src/main/java/com/github/trang/druid/autoconfigure/datasource/init/DataSourceInitializer.java
@@ -22,8 +22,7 @@ import java.util.Collections;
import java.util.List;
/**
- * Initialize a {@link DataSource} based on a matching {@link DataSourceProperties}
- * config.
+ * Initialize {@link DataSource} List based on a matching {@link DataSourceProperties} config.
*
* @author Dave Syer
* @author Phillip Webb