Spring配置声明式事物
?
?
在applicationContext.xml文件中配置Spring声明式事物(2X)
注意:声明式事物,只会回滚RuntimeException,其他的异常(Exception)不会回滚
<!--?1.加载命名空间?-->
<?xml?version="1.0"?encoding="UTF-8"?>
<beans?xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd?
http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-2.0.xsd?http://www.springframework.org/schema/aop?
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
?
?
注意:1.要把之前的命名空间覆盖掉2.在SessionFactory对象之后加入下面配置
?
<!--?2.事务:事务管理器对象?-->
<bean?id="myHibTxManager"
<property?name="sessionFactory"?ref="BankSession"?/>
</bean>
?
<!--?3.事务如何通知规则?-->
<tx:advice?id="txAdvice"?transaction-manager="myHibTxManager">
<tx:attributes>
<tx:method?name="add*"?propagation="REQUIRED"?/>
<tx:method?name="del*"?propagation="REQUIRED"?/>
<tx:method?name="update*"?propagation="REQUIRED"?/>
<tx:method?name="do*"?propagation="REQUIRED"?/>
<tx:method?name="*"?propagation="SUPPORTS"?read-only="true"?/>
</tx:attributes>
</tx:advice>
?
<!—-?4.定义一个切面,即定义那些方法应用这些规则?-->
<aop:config>
<!--?项目中session包中的所有接口和类方法都要拦截?-->
<aop:pointcut?id="myBiz"?expression="execution(*?biz.*.*(..))"?/>
<aop:advisor?advice-ref="txAdvice"?pointcut-ref="myBiz"?/>
</aop:config>