Druid学习笔记
相关配置:
web.xml配置
Xml代码
<!--druid数据源,用于采集web-jdbc关联监控的数据-->
<!--具体参考官网:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter-->
<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>
<init-param>
<param-name>profileEnable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Xml代码下载
<!--展示Druid的统计信息-->
<!--具体可以看官网信息:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE-->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<!--访问路径eg:http://localhost:8080/path/druid/index.html-->
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
spring.xml配置
Xml代码下载
<!--Druid和Spring关联监控配置start-->
<!--具体可以查阅官网:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_Druid%E5%92%8CSpring%E5%85%B3%E8%81%94%E7%9B%91%E6%8E%A7%E9%85%8D%E7%BD%AE-->
<beanid="druid-stat-interceptor"class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"/>
<beanid="druid-stat-pointcut"class="org.springframework.aop.support.JdkRegexpMethodPointcut"scope="prototype">
<propertyname="patterns">
<list>
<value>com.cp2015.function.*.service.*</value>
<!--如果使用的是hibernate则这里也要扫描路径,但是mybatis不需要-->
<!--<value>com.youmeek.ssm.module.*.dao.*</value>-->
</list>
</property>
</bean>
<aop:configproxy-target-class="true">
<!--pointcut-ref="druid-stat-pointcut"这个报红没事-->
<aop:advisoradvice-ref="druid-stat-interceptor"pointcut-ref="druid-stat-pointcut"/>
</aop:config>
<!--Druid和Spring关联监控配置end-->
数据源配置:
1)tomcat JNDI配置
Xml代码下载
<Resource
name="jdbc/user2"
factory="com.alibaba.druid.pool.DruidDataSourceFactory"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/cp2015DB?useUnicode=true&characterEncoding=utf-8&autoReconnect=true"
username="cp2015"
password="cp2015"
maxActive="100"
maxIdle="30"
maxWait="10000"
removeabandoned="true"
removeabandonedtimeout="60"
logabandoned="false"
filters="stat"/>
2)jdbc配置
Xml代码下载
<!--具体查看官网信息:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE-->
<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close">
<!--这三个变量读取config.properties的-->
<propertyname="url"value="${data_source_url}"/>
<propertyname="username"value="${data_source_username}"/>
<propertyname="password"value="${data_source_password}"/>
<!--初始化连接大小-->
<propertyname="initialSize"value="1"/>
<!--初始化连接池最大使用连接数量-->
<propertyname="maxActive"value="20"/>
<!--初始化连接池最小空闲-->
<propertyname="minIdle"value="1"/>
<!--获取连接最大等待时间,单位毫秒-->
<propertyname="maxWait"value="60000"/>
<!--配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒-->
<propertyname="timeBetweenEvictionRunsMillis"value="60000"/>
<!--配置一个连接在池中最小生存的时间,单位是毫秒-->
<propertyname="minEvictableIdleTimeMillis"value="25200000"/>
<!--打开PSCache,并且指定每个连接上PSCache的大小-->
<!--如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false。-->
<propertyname="poolPreparedStatements"value="false"/>
<propertyname="maxPoolPreparedStatementPerConnectionSize"value="20"/>
<propertyname="validationQuery"value="${validation_query}"/>
<propertyname="testWhileIdle"value="true"/>
<propertyname="testOnBorrow"value="false"/>
<propertyname="testOnReturn"value="false"/>
<!--当程序存在缺陷时,申请的连接忘记关闭,这时候,就存在连接泄漏了。Druid提供了RemoveAbandanded相关配置,用来关闭长时间不使用的连接-->
<!--配置removeAbandoned对性能会有一些影响,建议怀疑存在泄漏之后再打开。在上面的配置中,如果连接超过30分钟未关闭,就会被强行回收,并且日志记录连接申请时的调用堆栈。-->
<!--具体查看官网信息:https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B-->
<!--打开removeAbandoned功能-->
<propertyname="removeAbandoned"value="true"/>
<!--1800秒,也就是30分钟-->
<propertyname="removeAbandonedTimeout"value="1800"/>
<!--关闭abanded连接时输出错误日志-->
<propertyname="logAbandoned"value="true"/>
<!--配置监控统计拦截的filters-->
<!--官网信息:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter-->
<!--mergeSql可以合并输出的sql,方便查看,但是在mybatis框架中使用这个则无法监控sql,需要用stat-->
<!--<propertyname="filters"value="mergeSql,log4j"/>-->
<!--<propertyname="filters"value="mergeSql,wall"/>-->
<!--<propertyname="filters"value="stat"/>-->
<!--<propertyname="filters"value="mergeSql"/>-->
<propertyname="filters"value="stat,log4j"/>
</bean>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。