2

我是 Java Web 应用程序开发的新手。到目前为止,我使用的只是普通的旧 servlet、jdbc 和 jsps。我开始阅读所有框架,但我完全困惑并迷失在一大堆框架中?所以这里有一些问题:

  1. EJB3 和 Hibernate 是竞争技术还是可以一起使用。
  2. 如果我使用了 JBoss Seam,我是否还需要使用 Hibernate 来满足我的 ORM 需求,或者 Seam + EJB3 可以解决这个问题?
  3. 如果我必须使用 JBoss Seam 开发 web 应用程序,我需要学习哪些典型框架?是以下部分还是全部:Seam (ofcourse) JSF EJB3 Hibernate Spring Inversion of control container
  4. 我可以使用 JBoss Seam 在 JBoss Portal 上开发应用程序吗?

谢谢维卡斯

4

5 回答 5

2

1. EJB3 和 Hibernate 是竞争技术还是可以一起使用。

他们有相互竞争的 API(JPA 与 Hibernate 的 API 不同),但是 Hibernate 可以插入到 JPA 下,只是不要期望与为 Hibernate 编码的东西的互操作性 - 特别是 jBPM(3.2)即使在 Seam(2.1.1)下也不能完全互操作.

2. 如果我使用了 JBoss Seam,我是否还需要使用 Hibernate 来满足我的 ORM 需求,还是 Seam + EJB3 可以解决这个问题?

正如我所理解的那样,你可以做任何一个。

3. 如果我必须使用 JBoss Seam 开发 web 应用程序,我需要学习哪些典型框架?是以下部分还是全部:Seam (ofcourse) JSF EJB3 Hibernate Spring Inversion of control container

JSF——Seam 真正有意义的必要条件——我建议关注 facelets 作为创建 JSF 页面的主要方式。语法很好而且很熟悉——普通的旧命名空间限定 XHTML 与位于不同命名空间中的服务器端组件。完全微不足道和干净,不像我尝试过的其他任何东西。

EJB3 - 如果你喜欢,或者不喜欢,由你决定。以这种方式前进会将您拖入 Java EE,这仍然让我有些害怕,尽管它有很多好处。

休眠 - 如果您愿意,由您决定。JPA 实体管理器提供了替代方案。

Spring IoC,呃……是的,如果你喜欢,这又取决于你。Seam 负责有状态的会话和会话范围的 bean(通常是表示逻辑层的一部分),而 Spring 最适合无状态上下文,例如与数据库和任何 SOA 客户端等后端服务的接口。

我发现 Seam + JSF (facelets) + Hibernate + Spring 是通过 jBPM 创建 UI 以及用于交付内容页面的另一个项目的非常好的组合,尽管这并不是 Seam 的真正用途。

  1. 我可以使用 JBoss Seam 在 JBoss Portal 上开发应用程序吗?

对不起,不能帮你。

于 2009-04-29T12:10:32.730 回答
0

Regarding question #4.

JBoss Seam can be used inside of JBoss Portal if a bridge is used.

There is currently a JBoss Portlet Bridge project that is in CR stage and approaching release.

于 2009-07-13T11:31:09.343 回答
0
  1. EJB3 和 Hibernate 是互补的技术。EJB3 定义了 JPA (API),Hibernate 可以用作 JPA 的持久性提供者。

  2. 您仍然需要使用持久性提供程序之一,它可能是 Hibernate、OpenJPA 等。

  3. JSF 和 EJB3。

  4. 关于 Seam 和 Portal 开发:更好的问题是 JSF 和 Portal 协同工作的效果如何?

他们当然可以一起工作——这里有相关的教程:使用 JSF、Ajax 和 Seam 开发 Portlet

于 2009-04-29T15:20:09.043 回答
0
  1. 是和不是。EJB3(或者更确切地说是 JPA)是一种通过 Java5 注释声明 OR 映射以及查询它们的接口的规范。你仍然需要一个实现。Hibernate Annotations 将是映射的实现,而 Hibernate EntityManager 是查询接口的实现——它们使用“主要”Hibernate 来完成他们的工作。您应该能够混合和匹配这些 - 可以使用 JPA 注释,并使用 Hibernate 的 API,如 HQL 和 Criteria。
  2. 取决于,主要取决于应用服务器。一个功能齐全的应用程序服务器可以为您处理 JPA 内容,您可以通过 web.xml 和 appserver 控制台进行配置。当然,这不包括混搭。不管应用程序服务器如何,您仍然可以自己滚动,以编程方式/使用 Spring/其他方式访问查询 API。
  3. JSF 是使用 Seam 的先决条件。至于 EJB3/JPA 与 Hibernate - 偏好问题。您不需要了解太多/任何 Hibernate 即可将其用作 JPA 实现。JPA 强烈基于 Hibernate 的 API,因此两者之间的差异可能相当小。Spring 并不是绝对必要的,JBoss 正在尽最大努力通过 Web Beans 获得一些市场份额。Seam 的某些功能与 Spring 的某些功能重叠。尽管 Spring 是高度模块化的,并且涵盖了很多内容,因此您应该能够挑选您想要的 Spring 功能。
  4. 不会知道。
于 2009-04-29T12:45:42.003 回答
0

JBoss Seam 是一个元框架,它结合了 EJB3 和 JSF 框架,并以依赖注入的形式包装它们。作为一种 J2EE 技术,您通常将其部署在应用程序服务器中——这就是 JBoss Portal 的用武之地。

JBoss Portal 是 JBoss 组织的商业产品。它将各种 J2EE 组件以“模块”的形式捆绑在一起,这些组件将包括 EJB3、JSF 和JBoss Application Server

查看此链接,并滚动到底部以了解 Seam 和 Portal 的组合位置。Portal 站点描述了它提供的模块(我假设它们附带一个定价模型),Seam 支持由Portlet 模块提供。

于 2009-04-29T14:02:46.687 回答