mirror of
https://github.com/drtrang/druid-spring-boot.git
synced 2026-10-18 05:13:41 +00:00
optimize
This commit is contained in:
@@ -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>
|
||||
|
||||
+9
@@ -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() {
|
||||
|
||||
+2
-2
@@ -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())) {
|
||||
|
||||
+4
-4
@@ -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());
|
||||
|
||||
+6
-8
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user