diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index a7db40ebec..35bd501403 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -332,6 +332,13 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } dataSourceStat = new JdbcDataSourceStat(this.name, this.jdbcUrl); + + { + String property = System.getProperty("druid.filters"); + if (property != null && property.length() > 0) { + this.setFilters(property); + } + } for (Filter filter : filters) { filter.init(this); diff --git a/src/main/java/com/alibaba/druid/proxy/DruidDriver.java b/src/main/java/com/alibaba/druid/proxy/DruidDriver.java index 4d70f4fb78..6f94c46819 100644 --- a/src/main/java/com/alibaba/druid/proxy/DruidDriver.java +++ b/src/main/java/com/alibaba/druid/proxy/DruidDriver.java @@ -160,6 +160,15 @@ public class DruidDriver implements Driver, DruidDriverMBean { Driver rawDriver = createDriver(config.getRawDriverClassName()); DataSourceProxyImpl newDataSource = new DataSourceProxyImpl(rawDriver, config); + + { + String property = System.getProperty("druid.filters"); + if (property != null && property.length() > 0) { + for (String filterItem : property.split(",")) { + DruidLoaderUtils.loadFilter(config.getFilters(), filterItem); + } + } + } { int dataSourceId = createDataSourceId(); newDataSource.setId(dataSourceId);