关于action层保持事务
各位JE的前辈你们好。最近遇到了一个问题一直无法完美解决
?
项目是?struts2 + spring3?的架构。
?
架构是action、service两层架构,数据库操作利用jdmcTemplate完成,都放在了service层里。
?
这里有一个action的addPerson()方法里要处理3件事:
1、调用service层进行insert操作,插入这个person记录。
2、增加xml文件节点,增加这个person节点及子节点。
3、向远程服务器发送增加信息,也就是这个personBean。
?
怎么在action层里保持这3步的事务。。要求一项中的任意一处出了问题,3项都要回滚。
求大家给个思路指点指点吧....先谢谢大家了!解决了之后,俺请所有看俺帖子的人吃糖哈哈~~
1 楼 panhuan 2011-07-14 spring的事物时service上得!action上不建立事物!,service调用dao,dao对数据库操作! 2 楼 ahyyxx222 2011-07-14 3步全放service方法里,action只进行非事务的数据显示和组装操作 3 楼 ch00115751 2011-07-15 正如楼上两位所说,transaction管理确实在service而不是action中 4 楼 ch00115751 2011-07-15 但加入你项目已经是两层而不是三层,我提供给你解决方案,其他两层架构的transaction管理都适用,利用interceptor来管理action级别的事务。创建spring的TransactionInterceptor和ProxyFactoryBean,后者在spring xml文件中引用前者,前者可配置事务传播行为和给action的哪些方法加此事务,让所有的action在spring xml中集成那个bean(前提是你的action由spring管理)
这样就在action级别加了事务