AOP在Spring中的配置

本文介绍如何在Spring框架中使用AOP实现基于Hibernate的数据访问层事务管理,包括配置SessionFactory、事务管理器及通过切面定义事务传播行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	
	<bean id="transactionMgr" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
		<property name="sessionFactory"> 
			<ref bean="sessionFactory"/> 
		</property> 
	</bean>
	<tx:advice id="txAdvice" transaction-manager="transactionMgr"> 
		<!-- 定义方法的过滤规则 -->
		<tx:attributes> 
			<!--propagation表示的是事务的传播特性,使用required时,是当检测到add开头的方法时,就看此时有没有开启的事务,如果有则将方法放进事务中去,如果没有,则新建一个事务。然后将方法放进去--> 
			<tx:method name="add*" propagation="REQUIRED"/> 
			<tx:method name="delete*" propagation="REQUIRED"/> 
			<tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/> <!--设置回滚的条件Exception--> 
			<!--如果检测到其它的方法,则给其只读数据库的属性。即当本方法在读时,其它的方法不能再去写了。保证一个事务的完整性。 -->
			<tx:method name="*" read-only="true"/> 
		</tx:attributes> 
	</tx:advice> 
	<aop:config> 
		<!-- 定义一个切入点 -->
		<aop:pointcut id="allManagerMethod" expression="execution(* zzc.dao.*.*(..))"/> 
		<!-- 对切入点和事务的通知,进行适配 -->
		<!-- 调用上面配置的事务属性,可以将它给本aop pointcut。-->  
		<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/> 
		<!-- 如果还有其它的定义,则可以再加上pointcut、advisor来定义本切面点的事务逻辑-->  
	</aop:config>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值