Druid连接池二(学习笔记)

本文详细介绍了Druid连接池的监控配置,包括Web关联监控和Spring关联监控的配置方法,如WebStatFilter的exclusions配置、sessionStatMaxCount等。此外,还讲解了Druid的防御特性,如WallFilter的使用和配置,以及如何防御SQL注入攻击。最后,文章提到了Druid的日志配置和连接泄漏监测,帮助读者理解Druid的全面监控和安全策略。
摘要由CSDN通过智能技术生成

6.Druid关联

6.1.Web关联监控配置 

WebStatFilter用于采集web-jdbc关联监控的数据。

web.xml配置

 <filter>    <filter-name>DruidWebStatFilter</filter-name>    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>    <init-param>        <param-name>exclusions</param-name>        <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>    </init-param>  </filter>  <filter-mapping>    <filter-name>DruidWebStatFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>

exlusions配置

    经常需要排除一些不必要的url,比如.js,/jslib/等等。配置在init-param中。比如:

<init-param>        <param-name>exclusions</param-name>        <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value></init-param>

sessionStatMaxCount配置

缺省sessionStatMaxCount1000个。你可以按需要进行配置,比如:

<init-param>        <param-name>sessionStatMaxCount</param-name>        <param-value>1000</param-value></init-param>

sessionStatEnable配置

你可以关闭session统计功能,比如:

<init-param>        <param-name>sessionStatEnable</param-name>        <param-value>false</param-value></init-param>

principalSessionName配置

你可以配置principalSessionName,使得druid能够知道当前的session的用户是谁。比如:

<init-param>        <param-name>principalSessionName</param-name>        <param-value>xxx.user</param-value></init-param>

根据需要,把其中的xxx.user修改为你user信息保存在session中的sessionName

注意:如果你session中保存的是非string类型的对象,需要重载toString方法。

principalCookieName

    如果你的user信息保存在cookie中,你可以配置principalCookieName,使得druid知道当前的user是谁

    <init-param>        <param-name>principalCookieName</param-name>        <param-value>xxx.user</param-value>    </init-param>

根据需要,把其中的xxx.user修改为你user信息保存在cookie中的cookieName

profileEnable

    druid 0.2.7版本开始支持profile,配置profileEnable能够监控单个url调用的sql列表。

<init-param>    <param-name>profileEnable</param-name>    <param-value>true</param-value></init-param>

结果展示



6.2.Spring关联监控配置 

Druid提供了SpringJdbc的关联监控。

配置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

按类型拦截配置

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

方法名正则匹配拦截配置

  <bean id="druid-stat-interceptor"    class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">  </bean> <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"    scope="prototype">    <property name="patterns">        <list>            <value>com.mycompany.service.*</value>            <value>com.mycompany.dao.*</value>        </list>    </property></bean> <aop:config>    <aop:advisor advice-ref="druid-stat-interceptor"        pointcut-ref="druid-stat-pointcut" /></aop:config>

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

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

按照BeanId来拦截配置

<bean id="druid-stat-interceptor"    class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值