Java类设计中的提交事务

问题描述:

我正在寻找Java类设计中的最佳策略。 我使用的是JSF 2.1,基本上我有一个放置订单并从Web服务检索的类。Java类设计中的提交事务

  • 我想提交事务或回滚,如果使用 这个类有错误。

我可以采取什么样的方法来解决这个问题。 我需要使用嵌套类设计吗? 我至少有15个方法必须协调工作,以确保即使一个失败,事务也会回滚。 任何指导表示赞赏。

+0

你可以在交易范围内做到这一点,不管你有什么样的类别设计。 – 2013-03-14 18:47:07

JSF是一种视图技术。如果你正在做的事情,它不应该参与交易。

JSF视图应该与控制器通信。控制者应该有一个对服务的引用,该服务是知道工作单位和交易的对象。该服务编排模型对象,持久对象和其他服务以满足用例。

获取数据库连接和提交或回滚事务的逻辑属于该服务。

如果你使用面向方面的编程,很容易做到。 (这就是Spring如何做到的。)

view--->controller--->service--+--->persistence 
           | 
           +--->model 

它被称为分层设计。当我绘制它们时,依赖关系应该遵循箭头。模型和持久性不知道服务,控制器或视图。

+0

对不起,我应该提到我使用EJB而不是Spring。所以Roman C提到的帮助我。我没有搜索其他的堆栈流文章,我发现这个有用的链接关于EJB。 http://entjavastuff.blogspot.cz/search/label/EJB3 – Sunny 2013-03-14 19:10:03

+0

EJB通过方面和注释来完成它,就像Spring一样。毫不奇怪 - 罗德约翰逊在EJB3委员会。他们从Spring学到很多东西。 – duffymo 2013-03-14 19:26:29

+0

我必须给你正确的答案,因为你的答案是正确的。感谢duffymo。 – Sunny 2013-03-14 19:29:58