Druid 数据库连接池监控配置(web项目)

时间:2022-07-24
本文章向大家介绍Druid 数据库连接池监控配置(web项目),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Spring数据源配置:

<!--  数据源 -->
       <!--<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">-->
       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
              <property name="driverClassName" value="${dataSource.driverClassName}"/>
              <property name="url" value="${dataSource.url}"/>
              <property name="username" value="${dataSource.username}"/>
              <property name="password" value="${dataSource.password}"/>
              <property name="maxActive" value="${dataSource.maxActive}"/>
              <property name="initialSize" value="${dataSource.initialSize}"></property>
              <property name="validationQuery" value="${dataSource.validationQuery}"/>

              <!--申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效-->
              <property name="testWhileIdle" value="${dataSource.testWhileIdle}"/>
              <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
              <property name="timeBetweenEvictionRunsMillis" value="${dataSource.timeBetweenEvictionRunsMillis}"/>
              <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
              <property name="minEvictableIdleTimeMillis" value="${dataSource.minEvictableIdleTimeMillis}"/>
              <!--申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。-->
              <property name="testOnBorrow" value="${dataSource.testOnBorrow}"/>
              <!--归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能-->
              <property name="testOnReturn" value="${dataSource.testOnReturn}"/>
              <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
              <!--是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。5.5及以上版本有PSCache,建议开启。-->
              <property name="poolPreparedStatements" value="${dataSource.poolPreparedStatements}"/>
              <property name="maxPoolPreparedStatementPerConnectionSize" value="${dataSource.maxPoolPreparedStatementPerConnectionSize}"/>
              <!-- 配置监控统计拦截的filters merge:合并为参数化sql wall:防御sql注入-->
              <property name="filters" value="${dataSource.filters}"/>
              <!--日志输出执行慢的SQL-->
              <property name="connectionProperties" value="${dataSource.connectionProperties}" />
       </bean>

web.xml配置:

<servlet>
    <servlet-name>DruidStatView</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DruidStatView</servlet-name>
    <url-pattern>/druid/*</url-pattern>
  </servlet-mapping>

访问:

http://host:port/project/druid