Spring3事务管理——基于tx/aop命名空间的配置

基于tx/aop配置的声明式事务管理是实际开发中最常用的事务管理方式之一。
在“Spring3事务管理——使用原始的TransactionProxyFactoryBean”代码基础上修改applicationContext.xml。
配置如下:

<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
		p:dataSource-ref="dataSource">
	</bean>

	<!-- 通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 -->
	<aop:config proxy-target-class="true">
		<aop:pointcut id="serviceMethod"
			expression=" execution(* net.yingyi.games.service..*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
	</aop:config>
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" />
		</tx:attributes>
	</tx:advice>

	<!-- 定义JdbcTemplate的Bean -->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"
		p:dataSource-ref="dataSource">
	</bean>
	
	<!-- 需要实施事务增强的目标业务Bean -->
	<bean id="userScore"
		class="net.hingyi.springDemo.transaction.service.UserScoreServiceImpl"
		p:userScoreRepository-ref="userScoreRepository_jdbc" />
	
	<bean id="userScoreRepository_jdbc"
		class="net.hingyi.springDemo.transaction.repository.UserScoreRepositoryImpl"
         p:jdbcTemplate-ref="jdbcTemplate" />



上面的代码中,我们可以看到不同的角色:通过tx/aop定义的声明式事务配置信息、业务Bean、Spring容器。Spring容器自动将“通过tx/aop定义的声明式事务配置信息”应用于“业务Bean”,从容器中返回的业务Bean已经是被织入事务增强的代理Bean,即“通过tx/aop定义的声明式事务配置信息”和“业务Bean”在配置时不直接管理。



转载于:https://my.oschina.net/guanzhenxing/blog/214000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值