Spring aop事务

(1)在serviceImpl层,不能catch异常,如果需要catch也要在catch里抛出异常,不然不回滚
(2)applicationContext.xml中增加如下配置:
<bean id="txManager"
	class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="add*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
			<tx:method name="create*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
			<tx:method name="get*" read-only="true" isolation="READ_COMMITTED" />
			<tx:method name="pass*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
			<tx:method name="del*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.topic.service.impl..*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.post.service.impl..*.*(..))" />
	</aop:config>

猜你喜欢

转载自201301235651.iteye.com/blog/2299298