您的位置:首页 > 编程语言 > Java开发

spring事务模板使用

2015-12-02 16:25 477 查看

1.配置spring事务模板bean

<!--spring 模板事务-->

<bean id="transactionProxy" abstract="true"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager" ref="TransactionManager" />

<property name="transactionAttributes">

<props>

*****

</props>

</property>

</bean>

2.事务服务bean的配置

<bean id="xxxxDAO" class="com.xxxx.xxxxDAOImpl">

<property name="sessionFactory" ref="sessionFactory" />

</bean>

<bean id="xxxxServiceTarget" class="com.xxxx.xxxxServiceImpl" parent="service">

<property name="xxxxDAO" ref="xxxxDAO" />

</bean>

<bean id="xxxxService" parent="transactionProxy">

<property name="target" ref="xxxxServiceTarget" />

</bean>

使用占位符配置bean的方法:

<bean id="placeholderConfig"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>

***.properties

</value>

<value>

***.properties

</value>

</list>

</property>

</bean>

3.事物根据方法名默认绑定

<!-- 配置jdbc模版 -->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="dataSource" /> <!--连库信息-->

</bean>

<!-- 事务管理配置 如果使用orm框架,则替换为相应的事务管理器 -->

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource" />

</bean>

<!-- 通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 proxy-target-class="true" 强制使用CGLIB -->

<aop:config>

<aop:pointcut id="serviceMethods"

expression="execution(* com.navict.wxcc.service..*.*(..))" />

<aop:advisor pointcut-ref="serviceMethods" advice-ref="txAdvice" />

</aop:config>

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<tx:method name="add*" propagation="REQUIRED" />

<tx:method name="edit*" propagation="REQUIRED" />

<tx:method name="remove*" propagation="REQUIRED" />

<tx:method name="save*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<tx:method name="delete*" propagation="REQUIRED" />

<tx:method name="insert*" propagation="REQUIRED" />

<tx:method name="create*" propagation="REQUIRED" />

<tx:method name="modify*" propagation="REQUIRED" />

<tx:method name="point" propagation="REQUIRES_NEW" />

<tx:method name="task" propagation="NEVER" />

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

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

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

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

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

<tx:method name="*" />

</tx:attributes>

</tx:advice>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: