此文件中有dbcp、c3p0、druid三种配置方式mysql
#----------------数据库链接基本配置--------------- #数据库驱动 dataSource.driverClassName=com.mysql.jdbc.Driver #数据库链接地址 dataSource.url=jdbc\:mysql\://127.0.0.1\:3306/qfx_activiti_test?characterEncoding\=UTF-8 #用户名 dataSource.userName=root #密码 dataSource.passWord=666666 #SQL查询,在将链接返回给调用者以前,用来验证从链接池取出的链接是否有效 dataSource.validationQuery=select 1 #----------------dbcp链接池配置----------------- #初始链接数量 dbcp.initialSize=5 #最大链接数量 dbcp.maxActive=50 #最小空闲链接数量 dbcp.minIdle =5 #最大空闲链接数量 dbcp.maxIdle=20 #最大等待链接时间(以毫秒计数,1000等于60秒) dbcp.maxWait=1000 #链接超时是否自动回收 dbcp.removeAbandoned=true #每隔必定时间去检测一次空闲链接是否超时(毫秒),默认值为-1,即不开启 dbcp.timeBetweenEvictionRunsMillis=60000 #链接池中链接,在时间段内一直空闲,被逐出链接池的时间(毫秒) dbcp.minEvictableIdleTimeMillis=59000 #后台对象清理时,每次检查几个链接,建议设置和maxActive同样大,这样每次能够有效检查全部的链接 dbcp.numTestsPerEvictionRun=50 #定时对线程池中的链接进行校验,对无效的连接进行关闭后,会适当创建链接保证最小的minIdle链接数 dbcp.testWhileIdle=true #----------------c3p0链接池配置----------------- #链接池中保留的最小链接数.默认为:3 c3p0.minPoolSize=10 #链接池中保留的最大链接数.默认为:15 c3p0.maxPoolSize=100 #初始化时建立的链接数,应在minPoolSize与maxPoolSize之间取值.默认为3 c3p0.initialPoolSize=10 #最大空闲时间,60秒内未使用则链接被丢弃。若为0则永不丢弃。默认值: 0 c3p0.maxIdleTime=60 #JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量,若是maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。默认值:0 c3p0.maxStatements=6000 #定义了链接池内单个链接所拥有的最大缓存statements数。Default: 0 c3p0.maxStatementsPerConnection=0 #每60秒检查全部链接池中的空闲链接.默认值:0,不检查 c3p0.idleConnectionTestPeriod=1800 #当链接池中的链接耗尽的时候c3p0一次同时获取的链接数。默认值:3 c3p0.acquireIncrement=5 #定义全部链接测试都执行的测试语句。在使用链接测试的状况下这个一显著提升测试速度 c3p0.preferredTestQuery=select 1 #c3p0是异步操做的,缓慢的JDBC操做经过帮助进程完成.扩展这些操做能够有效的提高性能,经过多线程实现多个操做同时被执行.默认值:3 c3p0.numHelperThreads=3 #----------------druid链接池配置----------------- #属性类型是字符串,经过别名的方式配置扩展插件,经常使用的插件有:监控统计用的filter:stat日志用的filter:log4j防护sql注入的filter:wall druid.filters=stat #最大并发链接数 druid.maxActive=20 #初始化链接数量 druid.initialSize=1 #配置获取链接等待超时的时间 druid.maxWait=60000 #最小空闲链接数 druid.minIdle=10 #最大空闲链接数 druid.maxIdle=15 #配置间隔多久才进行一次检测,检测须要关闭的空闲链接,单位是毫秒 druid.timeBetweenEvictionRunsMillis=60000 #配置一个链接在池中最小生存的时间,单位是毫秒 druid.minEvictableIdleTimeMillis=300000 #建议配置为true,不影响性能,而且保证安全性.申请链接的时候检测,若是空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测链接是否有效. druid.testWhileIdle=true #申请链接时执行validationQuery检测链接是否有效,这里建议配置为true,防止取到的链接不可用,但会下降性能,默认值:true druid.testOnBorrow=true #归还链接时执行validationQuery检测链接是否有效,会下降性能,默认值:false druid.testOnReturn=false #缓存preparedStatement,也就是PSCache,对支持游标的数据库性能提高巨大,好比说oracle,在mysql5.5如下的版本中没有PSCache功能,建议关闭掉,5.5及以上版本有PSCache,建议开启 druid.maxOpenPreparedStatements=20
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd "> <!-- 1 引用数据库链接配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:dbConfig.properties</value> </list> </property> </bean> <!-- 2.1 配置tomcat dbcp链接池,destroy-method="close"是将用完的connect从新放回链接池 --> <bean id="dbcpDataSource" class="org.apache.commons.dbcp.BasicDataSource" 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}" /> <!-- 配置验证链接有效与否的SQL,不一样的数据库配置不一样 --> <property name="validationQuery" value="${dataSource.validationQuery}" /> <!-- 初始链接 --> <property name="initialSize" value="${dbcp.initialSize}" /> <!-- 最大链接 --> <property name="maxActive" value="${dbcp.maxActive}" /> <!--最小空闲链接--> <property name="minIdle" value="${dbcp.minIdle}" /> <!-- 最大空闲链接 --> <property name="maxIdle" value="${dbcp.maxIdle}" /> <!-- 最大等待链接(以毫秒计数) --> <property name="maxWait" value="${dbcp.maxWait}" /> <!--链接超时是否自动回收--> <property name="removeAbandoned" value="${dbcp.removeAbandoned}" /> <!-- 每隔必定时间去检测一次空闲链接是否超时(毫秒),默认值为-1,即不开启 --> <property name="timeBetweenEvictionRunsMillis" value="${dbcp.timeBetweenEvictionRunsMillis}" /> <!-- 链接池中链接,在时间段内一直空闲,被逐出链接池的时间(毫秒) --> <property name="minEvictableIdleTimeMillis" value="${dbcp.minEvictableIdleTimeMillis}" /> <!-- 后台对象清理时,每次检查几个链接,建议设置和maxActive同样大,这样每次能够有效检查全部的链接 --> <property name="numTestsPerEvictionRun" value="${dbcp.numTestsPerEvictionRun}" /> <!-- 定时对线程池中的链接进行校验,对无效的连接进行关闭后,会适当创建链接保证最小的minIdle链接数 --> <property name="testWhileIdle" value="${dbcp.testWhileIdle}" /> </bean> <!-- 2.2 配置c3p0链接池,destroy-method="close"是将用完的connect从新放回链接池 --> <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${dataSource.driverClassName}" /> <property name="jdbcUrl" value="${dataSource.url}" /> <property name="user" value="${dataSource.userName}" /> <property name="password" value="${dataSource.passWord}" /> <!--定义全部链接测试都执行的测试语句.在使用链接测试的状况下这个一显著提升测试速度 --> <property name="preferredTestQuery" value="${dataSource.validationQuery}" /> <!--链接池中保留的最小链接数.默认为:3--> <property name="minPoolSize" value="${c3p0.minPoolSize}" /> <!--链接池中保留的最大链接数.默认为:15 --> <property name="maxPoolSize" value="${c3p0.maxPoolSize}" /> <!--初始化时建立的链接数,应在minPoolSize与maxPoolSize之间取值.默认为3 --> <property name="initialPoolSize" value="${c3p0.initialPoolSize}" /> <!--最大空闲时间,60秒内未使用则链接被丢弃.若为0则永不丢弃.默认值: 0 --> <property name="maxIdleTime" value="${c3p0.maxIdleTime}" /> <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量,若是maxStatements与maxStatementsPerConnection均为0,则缓存被关闭.默认值:0--> <property name="maxStatements" value="${c3p0.maxStatements}" /> <!--定义了链接池内单个链接所拥有的最大缓存statements数.默认值:0 --> <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}" /> <!--每60秒检查全部链接池中的空闲链接.默认值:0,不检查--> <property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}" /> <!--当链接池中的链接耗尽的时候c3p0一次同时获取的链接数.默认值:3 --> <property name="acquireIncrement" value="${c3p0.acquireIncrement}" /> <!--c3p0是异步操做的,缓慢的JDBC操做经过帮助进程完成.扩展这些操做能够有效的提高性能,经过多线程实现多个操做同时被执行.默认值:3--> <property name="numHelperThreads" value="${c3p0.numHelperThreads}" /> </bean> <!-- 2.3 配置阿里 druid数据库链接池,destroy-method="close"是将用完的connect从新放回链接池 --> <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" 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}" /> <!-- 配置验证链接有效与否的SQL,不一样的数据库配置不一样 --> <property name="validationQuery" value="${dataSource.validationQuery}" /> <!-- 属性类型是字符串,经过别名的方式配置扩展插件,经常使用的插件有:监控统计用的filter:stat日志用的filter:log4j防护sql注入的filter:wall --> <property name="filters" value="${druid.filters}" /> <!-- 最大并发链接数 --> <property name="maxActive" value="${druid.maxActive}" /> <!-- 初始化链接数量 --> <property name="initialSize" value="${druid.initialSize}" /> <!-- 配置获取链接等待超时的时间 --> <property name="maxWait" value="${druid.maxWait}" /> <!-- 最小空闲链接数 --> <property name="minIdle" value="${druid.minIdle}" /> <!-- 最大空闲链接数 --> <!-- <property name="maxIdle" value="${druid.maxIdle}" /> --> <!-- 配置间隔多久才进行一次检测,检测须要关闭的空闲链接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" /> <!-- 配置一个链接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" /> <!-- 建议配置为true,不影响性能,而且保证安全性.申请链接的时候检测,若是空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测链接是否有效. --> <property name="testWhileIdle" value="${druid.testWhileIdle}" /> <!-- 申请链接时执行validationQuery检测链接是否有效,这里建议配置为TRUE,防止取到的链接不可用,但会下降性能,默认值:true--> <property name="testOnBorrow" value="${druid.testOnBorrow}" /> <!-- 归还链接时执行validationQuery检测链接是否有效,会下降性能,默认值:false --> <property name="testOnReturn" value="${druid.testOnReturn}" /> <!-- 缓存preparedStatement,也就是PSCache,对支持游标的数据库性能提高巨大,好比说oracle,在mysql5.5如下的版本中没有PSCache功能,建议关闭掉,5.5及以上版本有PSCache,建议开启 --> <property name="maxOpenPreparedStatements" value="${druid.maxOpenPreparedStatements}" /> </bean> </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd "> <!-- aspect注解生效,激活自动代理功能,若是不使用,能够删除此配置 --> <aop:aspectj-autoproxy proxy-target-class="true" /> <!-- 配置事物管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" > <!-- 注入数据库链接池,mybatis的sqlSessionFactory中的配置须要与这里保持一致 --> <property name="dataSource" ref="dbcpDataSource" /> <!-- <property name="dataSource" ref="c3p0DataSource" /> --> <!-- <property name="dataSource" ref="druidDataSource" /> --> </bean> <!-- 配置事物的传播特性 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="create*" propagation="REQUIRED"/> <tx:method name="insert*" propagation="REQUIRED"/> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="find*" propagation="REQUIRED"/> <tx:method name="get*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="remove*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 哪些类的哪些方法参与事物 --> <aop:config> <!-- 匹配指定包下(递归)全部类全部方法,返回值匹配任何状况 --> <aop:pointcut id="allManagerMethod" expression="execution(* com.qfx.*.*.services.impl..*.*(..))"/> <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/> </aop:config> </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 --> <context:component-scan base-package="com.qfx"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <import resource="applicationContext-dataSources.xml"/> <import resource="applicationContext-TransactionManager.xml"/> </beans>