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

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

<!-- 配置事务管理器 -->
	<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”在配置时不直接管理。 express

相关文章
相关标签/搜索