tapestry5:tapestry5集成spring事务管理

今天我使用tapestry5 集成spring时想使用事务管理于是高高兴兴地进行spring 配置:配置代理类(TransactionProxyFactoryBean)完后才发现使用不了

经过查询api相关文档最后才明白tapestry5注入方式和spring注入原理不最后在spring文档帮助下找到了能使用事务思路方法:

1、在spring配置文件中引入tx和aop命名空间:

view plaincopy to clipboardpr?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<span style="color: #ff0000;" mce_style="color: #ff0000;">xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx</span>"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<span style="color: #ff0000;" mce_style="color: #ff0000;">xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx</span>"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

2、配置事务规则:

view plaincopy to clipboardpr?
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="true" rollback-for="NoProductInStockException"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="true" rollback-for="NoProductInStockException"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>

3、配置切面

view plaincopy to clipboardpr?
<aop:config>
<aop:pocut id="fooServiceMethods" expression="execution(* x.y.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pocut-ref="xxxServices"/>
</aop:config>
<aop:config>
<aop:pocut id="fooServiceMethods" expression="execution(* x.y.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pocut-ref="xxxServices"/>
</aop:config>

OK重新布署应用就可以使用了

如果对aop和tx配置有什么不懂请查阅spring 文档!
Tags:  spring事务处理 spring事务 spring事务管理 tapestry5

延伸阅读

最新评论

发表评论