2

我在一家刚接触 java 的公司工作,我是唯一的 java 程序员,我需要在几个月内编写大约 10 个系统。该公司还有另外 2 名了解基本 java 的程序员。不是春天或类似的东西。

我使用 Spring、hibernate 和 MySQL 做了一些原型。SA 正在推动我们使用 EJB(我们刚刚获得了 JBoss)。所以现在经理正在考虑让我将 DAO 和 Hibernate 层移到 EJB 中。

所以我们将 Spring 用于 MVC (web),然后让它为所有数据访问做 EJB 类,这样 Jr 程序员就不必知道如何访问 MySQL 和 AS/400。

所以对于我的问题。我想知道我是否可以在 EJB 中使用 Spring。像 JDBCTemplate 和 Hibernate 这样的东西。我正在尝试的是在 EJB 中移动 DAO 层。

这可以做到吗?如果是这样,应该这样做吗?

4

4 回答 4

2

您可以在 EJB 中使用 Spring,但它相当复杂,并且不会比单独使用 Spring 带来好处。我不建议这样做。

于 2013-01-04T14:17:34.803 回答
2

作为轻量级容器,Spring 通常被认为是 EJB 的替代品。我们确实相信,对于许多(如果不是大多数)应用程序和用例,Spring 作为一个容器,结合其在事务、ORM 和 JDBC 访问领域的丰富支持功能,是比通过 EJB 容器和 EJB 实现等效功能更好的选择.

但是,重要的是要注意使用 Spring 不会阻止您使用 EJB。事实上,Spring 使得访问 EJB 和在其中实现 EJB 和功能变得更加容易。此外,使用 Spring 访问 EJB 提供的服务允许这些服务的实现稍后在本地 EJB、远程 EJB 或 POJO(普通旧 Java 对象)变体之间透明地切换,而无需更改客户端代码。

链接在这里:

http://static.springsource.org/spring/docs/2.5.4/reference/ejb.html

于 2013-01-04T15:07:27.437 回答
0

是的,它可以做到。查看处理 EJBS的Spring Framework 文档的第 22 章。您甚至可以在 Spring POJOS 中使用注解,EJB 层中使用注解。@EJB@Autowired

程序员往往会告诉您,每次将 Spring 与 EJB 混合使用时,Pink Dolphin 都会死去……嗯,我经常这样做,而且它们还活着。

于 2013-01-04T14:44:59.343 回答
0

检查您的要求,考虑您的系统设计——您认为 Spring 和 Java EE 的混合是您的最佳实践吗?这个系统在生产中是否可管理、可扩展、可维护?

您可以使用 Spring+Hibernate 并使用 JNDI 配置的数据源。你甚至可以只使用 tomcat 来做到这一点。

我看不出将 DAO 层放入 EJB 的良好设计理由,因此请考虑您的设计并为其准备论据。恕我直言,这是一个混淆,只会使系统更加复杂和错误。

将您的整个业务和持久层移动到 EJB 可能是合理的,这取决于您的具体情况。试着写一个赞成与反对的清单。有什么好处,有什么坏处。

于 2013-01-04T14:45:20.267 回答