【问题标题】:how to manage transaction in business logic layer如何在业务逻辑层管理事务
【发布时间】:2011-06-25 16:13:59
【问题描述】:

我想知道如何在业务逻辑层(BLL)管理事务。

我已搜索此网站以找到我的问题的答案,但没有成功。

我想在我的 Web 应用程序中使用 hibernate 和 struts。

在 struts 的 Actions 中,我调用了 BLL 函数。

在 BLL 函数中,我想要这样:

Begin transaction
try {
    Call DAL to do something
    ...
    Call DAL to do something
    Commit Transaction
catch {
    Roleback Transaction
}

在 DAL 中,我使用休眠函数来执行操作。

但我不知道如何在 BLL 管理交易。

请给点建议。

谢谢。

【问题讨论】:

    标签: hibernate struts business-logic


    【解决方案1】:

    最常见的做法是将事务管理与连接管理一起添加为一个方面。如果您使用的是 Spring,它可能就像将服务的相应方法(您的业务逻辑包含在服务中,对吗?)注释为 @Transactional 一样简单。

    【讨论】:

    • 我的 BLL 包含许多服务。我找到了这篇文章devarticles.com/c/a/Java/Managing-Transactions-with-Hibernate/3。但我想知道如果我这样做是否有任何风险。我以前从未读过关于春天的书。那么,我是流这个帖子还是春天?
    • 这篇文章已经过时,并且包含非常糟糕的代码。使用 Spring、Guice、EJB3 或任何其他允许您以声明方式处理事务的框架(例如,使用注释)。否则,您的代码将被事务管理所困扰,并且可能包含更多错误。
    • 我的眼睛!我的眼睛!好吧,我想在看过所有代码之后,人们会真正体会到使用 Spring(或任何其他 DI/AOP 框架)注解 @Transactional 的优雅。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2011-12-03
    • 2011-11-26
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多