“数据未来·携手跨越” 云祺产品新版本发布暨全国巡展—武汉站 4月26日 星期五 14:00 云祺视频号准时直播
vinchin linked
delta 扫码预约直播,观看精彩内容!
closed
logo
关于我们

技术分享

技术分享 spring下使用数据库连接池druid及数据库性能监控的配置

spring下使用数据库连接池druid及数据库性能监控的配置

2021-06-01

数据库连接池配置文件 spring-datasource-druid.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns
	xmlns:xsi
	xmlns:contextt
	xmlns:jdbc
	xmlns:util
	xsi:schemaLocation=
	<context:property-placeholder location="classpath:/configs/jdbc.properties" />

	<!-- 通常来说,只需要修改initialSize、minIdle、maxActive。 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。 
		分库分表较多的数据库,建议配置为false -->
	<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">
		<property name="resultSetLogEnabled" value="false" />
	</bean>

	<bean id="druidPool" class="com.alibaba.druid.pool.DruidDataSource"
		init-method="init" destroy-method="close">
		<!-- 基本属性 url、user、password -->
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />

		<!-- 配置初始化大小、最小、最大 -->
		<property name="initialSize" value="1" />
		<property name="minIdle" value="1" />
		<property name="maxActive" value="20" />

		<!-- 配置获取连接等待超时的时间 -->
		<property name="maxWait" value="60000" />

		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="60000" />

		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="300000" />

		<property name="validationQuery" value="SELECT sysdate FROM dual" />
		<property name="testWhileIdle" value="true" />
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />

		<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
		<property name="poolPreparedStatements" value="true" />
		<property name="maxPoolPreparedStatementPerConnectionSize"
			value="20" />

		<!-- 配置监控统计拦截的filters -->
		<property name="filters" value="stat" />
		
		<!-- 配置输出日志 -->
		<property name="proxyFilters">
			<list>
				<ref bean="log-filter" />
			</list>
		</property>
	
	</bean>

</beans>

如果需要监视数据库性能,则还需要在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>   
    <servlet>  
        <servlet-name>DruidStatView</servlet-name>  
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  
    </servlet>

启动服务后,访问:ip:端口号/项目名/druid/index.html,即可到达数据库性能监控页面。

spring下使用数据库连接池druid及数据库性能监控的配置

 

另:

spring下mybatis的配置文件,需要注意的是 druidPool与spring-datasource-druid.xml中的druidPool是相对应的,不可缺少,所以此处把mybatis的配置文件也专门贴出来。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns
	<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="druidPool" />
		<!-- 自动扫描mapping.xml文件 -->
		<property name="mapperLocations"
			value="classpath:/com/hnepsoft/framework/dao/mybatis/mapping/*.xml"></property>
	</bean>

	<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.hnepsoft.framework.dao.mybatis.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>

	<bean id="sqlDao" class="com.hnepsoft.framework.dao.SqlDao">
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>

	<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="druidPool" />
	</bean>

	<!-- 注解方式配置事物 -->
	<!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->

	<!-- 拦截器方式配置事物 -->
	<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="insert*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />

			<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
			<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
			<tx:method name="select*" propagation="SUPPORTS" read-only="true" />

		</tx:attributes>
	</tx:advice>
	<!-- Spring aop事务管理 -->
	<aop:config>
		<aop:pointcut id="transactionPointcut"
			expression="execution(* com.hnepsoft.framework.service..*Impl.*(..))" />
		<aop:advisor pointcut-ref="transactionPointcut"
			advice-ref="transactionAdvice" />
	</aop:config>

</beans>
                   
云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 技术分享

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载