This commit is contained in:
trang
2018-03-10 22:54:17 +08:00
parent aad023df88
commit fa007deee4
6 changed files with 26 additions and 20 deletions
@@ -17,15 +17,15 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
@@ -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() {
@@ -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<StatViewServlet> registration = new ServletRegistrationBean<>(new StatViewServlet());
registration.addUrlMappings(properties.getUrlMappings());
if (!StringUtils.isEmpty(properties.getLoginUsername())) {
@@ -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<WebStatFilter> registration = new FilterRegistrationBean<>(new WebStatFilter());
registration.addUrlPatterns(properties.getUrlPatterns());
registration.addInitParameter("exclusions", properties.getExclusions());
@@ -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<List<FilterAdapter>> 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<Filter> 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);
}
}
@@ -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