spring基于AOP的事务管理,注解加配置文件

1.xml版本
<aop:aspectj-autoproxy proxy-target-class="true" />
	<!-- <bean class="com.zy.dev.service.TxAop"></bean> -->
	<!-- 配置spring的PlatformTransactionManager,名字为默认值 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!-- 开启事务控制的注解支持 -->
<!-- 	<tx:annotation-driven transaction-manager="transactionManager" /> -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" />
			<tx:method name="bulk*" propagation="REQUIRED" isolation="DEFAULT" />
			<tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT"
				read-only="true" />
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:advisor pointcut="execution(* *..*Service*.*(..))"
			advice-ref="txAdvice" />
	</aop:config>
2.注解版本xml
	<aop:aspectj-autoproxy proxy-target-class="true" />
	<!-- 配置spring的PlatformTransactionManager,名字为默认值 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<!-- 开启事务控制的注解支持 -->
	<tx:annotation-driven transaction-manager="transactionManager" />
注解版service使用方法,xml版本service不需要设置,按照规则命名即可
@Service
@Transactional 
public class UserService extends CommServiceImpl {

	public User getUser2(String id) {
		return getOneById(User.class, id);
	}

	public User updateuser(User u) {
		User update = update(u);
		int a = 1 / 0;
		return update;
	}
}


猜你喜欢

转载自blog.csdn.net/qq_23490959/article/details/79173382