在 Web 应用程序中使用 EJB 有啥好处?

Posted

技术标签:

【中文标题】在 Web 应用程序中使用 EJB 有啥好处?【英文标题】:What are the benefits of using EJBs in a Webapplication?在 Web 应用程序中使用 EJB 有什么好处? 【发布时间】:2012-05-16 18:30:59 【问题描述】:

我正在使用 Java EE 开发一个数据库驱动的 Web 应用程序,我想知道使用 EJbs 的好处。

如果我理解正确,最好将 EJB 用于各种业务逻辑或数据库事务。

我使用 Hibernate 作为我的 JPA,这是我的问题:

使用注入的 EJB 作为 DAO,而不是使用常规的 Java 类作为 DAO(从我的托管 Bean 调用)有什么好处?又有什么区别呢?

我是 Java EE 的新手,所以这可能是一个初学者的问题。

【问题讨论】:

【参考方案1】:

如果您使用 EJB,则可以使用 EJB 容器提供的许多非常重要的服务。对几乎任何人都有用的最重要的是依赖注入和声明性事务。这两者都可以由 Spring 框架提供。对于非常大的应用程序,EJB 有一个定义良好的集群模型会很有用,但您可能不需要它。

【讨论】:

所以在小型应用程序中为我的业务逻辑使用常规类是“可以的”? @tk2000:即使在那里你也需要交易,而手动进行交易既乏味又容易出错。如果您已经在使用 java EE 服务器并因此有可用的 EJB 容器,那么值得为此使用 EJB。现代 EJB 非常易于使用 - 只需要一些注释,您不必再处理部署描述符和 JNDI 查找,所以没有理由害怕它们。 这个答案+1。手动处理 JPA 中的事务是一件痛苦的事情。 EJB 几乎是一个普通的类,只需将 @Stateless 放在它上面,不要用 new 创建它,而是注入它。在 90% 的情况下,这就是您需要知道的全部内容。

以上是关于在 Web 应用程序中使用 EJB 有啥好处?的主要内容,如果未能解决你的问题,请参考以下文章

Web 应用程序中的有状态 EJB?

如果没有应用程序回收,在 ASP.NET 中使用后台工作人员有啥好处?

在 web.config 文件中添加命名空间有啥好处?

使用 tomee 调用多个 ejb 服务器的 Web 服务器

使用 Web.config 计划任务比使用 Windows 计划任务有啥好处

1EJB基本概念及运行环境