为了实现事务管理功能,需要在spring配置文件applicationContext。xml中进行配置。本系统采用了基本AOP的事务管理配置,配置流程如下所示。
(1)<beans>标记中添加AOP所需的常用命名空间声明:
xmlns_htt : p : / /www. springframework. org/schema/beans
xmlns : xsi=http : / / www. w3. org/2001/xmlschema-instance
xmlns : aop_http : / / www. springframework. org/schema/aop
xmlns : p.http : / / www. springframework. org/schema/p
xmlns : tx_http : / /www. springframework. org/schema/tx
xsi : schemalocation=http : / / www. springframework. org/schema/beans
http : / / www. springframework. org/schema/beans/spring-beans-3. 1. xsd
http : / / www. springframework. org/schema/aop
http : / / www. springframework. org/schema/aop/spring-aop-3. 1. xsd
http : //www. springframework. org/schema/tx/spring-tx. xsd, ; >
(2)使用声明式事务,需要提供声明事务管理器。
使用MyEc卸se向导给项目添加Spring和Hibemate支持后,会自动在Spring配置文1
中声明一个Hibemate事务管理器,如下所示:
<!一声明事务管理器一〉
<bean
id="transactionjuIanager"class-"org. springframework': orm
. hibernated. Hibernate TransactionManager">
<property name="session Factory"'ref = : session Factory"/ >. · T'tii, : :,
. </bean>
(3)定义事务通知时需要指定一个事务管理器,然后在其属性中声明事务规则:
iq tw=-
wn,〈!一定义事务逾知 · -〉.-:”引燕裱羹纛莠蓁蓑襄苎琴棼幕嵘;
<tx : advi. ce id= nt×Advice"transacti : on-manager-"transactionManagc_-.'
<tx : attributes>
<tx : method name-n* r'propagation-"REQUIRED"/ >
</tx : attributes>
,41
</tx : advi ce>
在定义事务传播规则时,对所有的方法应用REQUIRED事务规则,表示当前方法必
运行在一个事务环境中,如果一个现有事务正在运行中,该方法将运行在这个事务中’
则,就要开始一个新的事务。
xmlns : xsi=http : / / www. w3. org/2001/xmlschema-instance
xmlns : aop_http : / / www. springframework. org/schema/aop
xmlns : p.http : / / www. springframework. org/schema/p
xmlns : tx_http : / /www. springframework. org/schema/tx
xsi : schemalocation=http : / / www. springframework. org/schema/beans
http : / / www. springframework. org/schema/beans/spring-beans-3. 1. xsd
http : / / www. springframework. org/schema/aop
http : / / www. springframework. org/schema/aop/spring-aop-3. 1. xsd
http : //www. springframework. org/schema/tx/spring-tx. xsd, ; >
(2)使用声明式事务,需要提供声明事务管理器。
使用MyEc卸se向导给项目添加Spring和Hibemate支持后,会自动在Spring配置文1
中声明一个Hibemate事务管理器,如下所示:
<!一声明事务管理器一〉
<bean
id="transactionjuIanager"class-"org. springframework': orm
. hibernated. Hibernate TransactionManager">
<property name="session Factory"'ref = : session Factory"/ >. · T'tii, : :,
. </bean>
(3)定义事务通知时需要指定一个事务管理器,然后在其属性中声明事务规则:
iq tw=-
wn,〈!一定义事务逾知 · -〉.-:”引燕裱羹纛莠蓁蓑襄苎琴棼幕嵘;
<tx : advi. ce id= nt×Advice"transacti : on-manager-"transactionManagc_-.'
<tx : attributes>
<tx : method name-n* r'propagation-"REQUIRED"/ >
</tx : attributes>
,41
</tx : advi ce>
在定义事务传播规则时,对所有的方法应用REQUIRED事务规则,表示当前方法必
运行在一个事务环境中,如果一个现有事务正在运行中,该方法将运行在这个事务中’
则,就要开始一个新的事务。