【问题标题】:Which technology to use with EJB projectEJB 项目使用哪种技术
【发布时间】:2012-02-09 15:51:10
【问题描述】:

我正在使用 EJB 3.1 开发 Java 企业 Web 应用程序,我想知道在哪个 MVC 层上使用哪种技术。我有 ear、ejb(jar) 和 war 项目。

  1. 是否可以使用其他东西作为持久层,然后是 JPA 实现(例如 myBatis)以及如何使用?我想自己处理一些更困难的查询。

  2. 除了 JSF 或普通 servlet 之外,在 Web 项目(战争)中使用什么框架?

  3. 我熟悉 Spring,是否可以在 web(战争)项目中使用 Spring 并从其控制器中受益?

您能解释一下用于开发企业网络应用程序的技术吗?

谢谢。

【问题讨论】:

    标签: java model-view-controller view persistence ejb


    【解决方案1】:

    最好的组合是使用已有的东西。 JSF 2.0 已经是最好的 MVC 框架之一,因此它通常是首选。

    在使用 EJB 3.1 时,这几乎总是与 Java EE 实现结合使用,因此在这种情况下 JSF 已经存在,简单地使用它是不费吹灰之力的。

    Java EE 堆栈中的不同技术可以相互协作,因此由 JSF + CDI + EJB + JPA 组成的典型堆栈是最理想的组合,您会发现对此的支持最多。

    我个人认为 Spring 在 EJB/CDI 堆栈中没有任何位置。这两种技术是直接竞争对手,它们以(略微)不同的方式解决相同的问题。将它们组合起来很可能只会使您的代码复杂化。

    【讨论】:

      【解决方案2】:

      对于像您这样的初学者,请坚持使用 Java EE 5/6 开箱即用的功能。因此,在您的情况下,JSF+Facelets、EJB 3.1 和 JPA。

      我建议你按照给定的顺序阅读以下书籍

      1. Beginning Java™ EE 6 Platform with GlassFish™ 3
      2. Real World Java EE Patterns Rethinking Best Practices

      【讨论】: