druid – 配置_Druid和Spring关联监控配置

Druid提供了Spring和Jdbc的关联监控。

配置spring

com.alibaba.druid.support.spring.stat.DruidStatInterceptor是一个标准的Spring MethodInterceptor。可以灵活进行AOP配置。

Spring AOP的配置文档: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/aop-api.html

按类型拦截配置

<code>  &lt;bean id="druid-stat-interceptor"
    class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"&gt;
  &lt;/bean&gt;

  &lt;bean id="druid-type-proxyCreator" class="com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator"&gt;
    &lt;!-- 所有ABCInterface的派生类被拦截监控  --&gt;
    &lt;property name="targetBeanType" value="xxxx.ABCInterface" /&gt;
    &lt;property name="interceptorNames"&gt;
        &lt;list&gt;
            &lt;value&gt;druid-stat-interceptor&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
  &lt;/bean&gt;
</code>

方法名正则匹配拦截配置

<code>  &lt;bean id="druid-stat-interceptor"
    class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"&gt;
  &lt;/bean&gt;

&lt;bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
    scope="prototype"&gt;
    &lt;property name="patterns"&gt;
        &lt;list&gt;
            &lt;value&gt;com.mycompany.service.*&lt;/value&gt;
            &lt;value&gt;com.mycompany.dao.*&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
&lt;/bean&gt;

&lt;aop:config&gt;
    &lt;aop:advisor advice-ref="druid-stat-interceptor"
        pointcut-ref="druid-stat-pointcut" /&gt;
&lt;/aop:config&gt;
</code>

有些情况下,可能你需要配置proxy-target-class,例如:

<code>&lt;aop:config proxy-target-class="true"&gt;
    &lt;aop:advisor advice-ref="druid-stat-interceptor"
        pointcut-ref="druid-stat-pointcut" /&gt;
&lt;/aop:config&gt;
</code>

按照BeanId来拦截配置

<code>  &lt;bean id="druid-stat-interceptor"
    class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"&gt;
  &lt;/bean&gt;

&lt;bean
    class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"&gt;
    &lt;property name="proxyTargetClass" value="true" /&gt;
    &lt;property name="beanNames"&gt;
        &lt;list&gt;
            &lt;!-- 这里配置需要拦截的bean id列表 --&gt;
            &lt;value&gt;xxx-dao&lt;/value&gt;
            &lt;value&gt;xxx-service&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
    &lt;property name="interceptorNames"&gt;
        &lt;list&gt;
            &lt;value&gt;druid-stat-interceptor&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
&lt;/bean&gt;
</code>
如有帮助, 可以支持一下
分享到:

发表评论

昵称

沙发空缺中,还不快抢~