二级Java:tapestry5集成spring事务管理
来源:优易学  2011-8-21 18:13:20   【优易学:中国教育考试门户网】   资料下载   IT书店
  今天我使用tapestry5 集成spring时,想使用事务管理。。。于是高高兴兴地进行spring 的配置:配置代理类(TransactionProxyFactoryBean),完后才发现使用不了。。。
  经过查询api相关文档,最后才明白,tapestry5的注入方式与spring的注入原理不一样。最后在spring文档的帮助下找到了能使用事务的方法:
  1、在spring的配置文件中引入tx与aop的命名空间:
  view plaincopy to clipboardprint?
  <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 clipboardprint?
  <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 clipboardprint?
  <aop:config>
  <aop:pointcut id="fooServiceMethods" expression="execution(* x.y.service.*.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="xxxServices"/>
  </aop:config>
  <aop:config>
  <aop:pointcut id="fooServiceMethods" expression="execution(* x.y.service.*.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="xxxServices"/>
  </aop:config>
  OK,重新布署应用程序,就可以使用了。。。
  如果对aop与tx的配置有什么不懂的,请查阅spring 文档!

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训