把自己的Dao改造成线程安全的类了,也就是每个方法都是互不关联了
通过试验,成功通过测试
使用自己的jdbc类,使用spring的事务管理.自己的类里面不依赖spring框架.
部分相关的特殊配置如下 (其他部分和正常配置一样,就不写了)
需要注意的是transactionManager的属性要设置为dataSourceTarget,而不是dataSource. 否则会有问题.
通过试验,成功通过测试
使用自己的jdbc类,使用spring的事务管理.自己的类里面不依赖spring框架.
部分相关的特殊配置如下 (其他部分和正常配置一样,就不写了)
- <bean id="dataSourceTarget" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
- <property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
- <property name="url"><value>${jdbc.url}</value></property>
- <property name="username"><value>${jdbc.username}</value></property>
- <property name="password"><value>${jdbc.password}</value></property>
- <property name="maxActive"><value>100</value></property>
- <property name="maxIdle"><value>10</value></property>
- <property name="maxWait"><value>30000</value></property>
- <property name="timeBetweenEvictionRunsMillis"><value>300000</value></property>
- <property name="minEvictableIdleTimeMillis"><value>300000</value></property>
- </bean>
- <bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
- <constructor-arg ><ref bean="dataSourceTarget" /></constructor-arg>
- </bean>
- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource"><ref bean="dataSourceTarget"/></property>
- </bean>
<bean id="dataSourceTarget" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
<property name="maxActive"><value>100</value></property>
<property name="maxIdle"><value>10</value></property>
<property name="maxWait"><value>30000</value></property>
<property name="timeBetweenEvictionRunsMillis"><value>300000</value></property>
<property name="minEvictableIdleTimeMillis"><value>300000</value></property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<constructor-arg ><ref bean="dataSourceTarget" /></constructor-arg>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref bean="dataSourceTarget"/></property>
</bean>
需要注意的是transactionManager的属性要设置为dataSourceTarget,而不是dataSource. 否则会有问题.