From fa007deee4ac63b1b8564e61980eecdf4d4bb385 Mon Sep 17 00:00:00 2001 From: trang Date: Sat, 10 Mar 2018 22:54:17 +0800 Subject: [PATCH] optimize --- .../druid-spring-boot-autoconfigure/pom.xml | 8 ++++---- .../autoconfigure/DruidAutoConfiguration.java | 9 +++++++++ .../autoconfigure/DruidServletConfiguration.java | 4 ++-- .../autoconfigure/DruidStatConfiguration.java | 8 ++++---- .../datasource/AbstractDruidDataSource2.java | 14 ++++++-------- .../datasource/init/DataSourceInitializer.java | 3 +-- 6 files changed, 26 insertions(+), 20 deletions(-) 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