Skip to content

配置_Filter配置

zhanming edited this page Mar 4, 2013 · 2 revisions

DruidDataSource支持通过Filter-Chain模式进行扩展,类似Serlvet的Filter,扩展十分方便,你可以拦截任何JDBC的方法。

有两种配置Filter的方式,一种是配置filters属性,一种是配置proxyFilters属性。filters和proxyFilters的配置是组合关系,而不是替换关系。

配置filters属性

配置filters属性比较简单,filters的类型是字符串,多个filter使用逗号隔开。例如:

  <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
      init-method="init" destroy-method="close">
      <property name="url" value="jdbc:derby:memory:spring-test;create=true" />
      <property name="initialSize" value="1" />
      <property name="maxActive" value="20" />
      <property name="filters" value="stat,log4j" />
  </bean>

filters属性的配置使用别名或者全类名,stat是com.alibaba.druid.filter.stat.StatFilter的别名。在这里https://github.com/alibaba/druid/wiki/%E5%86%85%E7%BD%AEFilter%E7%9A%84%E5%88%AB%E5%90%8D 查看内置Filter的别名。

配置proxyFilters属性

proxyFilters的类型是List,使用proxyFilters配置,可以有更多的配置选项。

  <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
  </bean>

  <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
      init-method="init" destroy-method="close">
      <property name="url" value="jdbc:derby:memory:spring-test;create=true" />
      <property name="initialSize" value="1" />
      <property name="maxActive" value="20" />
      <property name="proxyFilters">
          <list>
              <ref bean="stat-filter" />
          </list>
      </property>
  </bean>
Clone this wiki locally