【问题标题】:Java EE FundamentalsJava EE 基础知识
【发布时间】:2011-06-01 04:31:10
【问题描述】:

我已经阅读了维基百科的文章。我浏览了 Oracle 教程。我在 Google 上搜索、狂欢和使用雅虎,但我仍然对 Java EE (5+) 的最基本基础感到窒息。

  1. 所有 Java EE 体系结构都必须在某个时候涉及应用程序服务器,例如 JBoss 或 GlassFish?本质上,应用服务器的概念是 Java EE 的基础吗?为什么/为什么不是?

  2. 除了应用程序服务器之外,Java EE 架构还依赖于其他主要组件吗?如果是,它们是什么以及它们如何“融入”架构并与应用服务器相关联?

  3. 我真的对 EJB 的概念感到窒息。从 everything 我已经能够在它们上找到,我无法判断 EJB 是否是供开发人员使用的规范(因此符合 EJB 规范会产生一个单元可以称为“bean”的代码),或者如果它像任何其他 Java 库,如 JDBC 或 JMS。

    (a) 在国王的英语中,不使用先进的、众所周知的概念或营销流行语,什么是 EJB?你能提供一些(一个)EJB 的快速而肮脏的例子吗?

    (b) EJB 如何与应用服务器接口/交互?

    (c) 什么是 EJB“容器”,它有什么作用?

  4. 在我看来,有很多顶级组件构成了 Java EE 后端,而对于 这些组件的每一种类型,都有很多开源和闭源的变体 您,系统工程师,必须从中选择。

    看到我已经对 Java EE 基础很困惑了,下面是我听说过的一些产品的列表 关于。我只是要求有人帮我对这些产品进行分类,这样我就可以清楚地看到, 它们是什么。例如,如果我列出“GlassFish”和“JBoss”,那么它们可能会出现在 “应用服务器”。如果我列出“Tomcat”和“WebSphere”,它们可能会出现在“Servlet Engines”等下。

    名单:

    • JBoss
    • 杰罗尼莫
    • 码头
    • 玻璃鱼
    • 雄猫
    • Spring RabbitMQ
    • 春天宝石火
    • 弹簧人
    • Spring tc 服务器
    • 休眠

5、Java EE 6和Java EE 6“Web Profile”有什么区别?

【问题讨论】:

  • 这是一系列非常棒的问题,您和我都希望得到答案......但我建议将它们分开,以使回答和搜索过程更容易。
  • Websphere 也是一个成熟的应用服务器,而不仅仅是一个 servlet 引擎。
  • 顺便说一句,如前所述,一次一个问题会更好,因为每个问题的答案都可能会变得很大。
  • 你说你浏览了oracle教程,但是你看过download.oracle.com/javaee/6/firstcup/doc。这是学习 JavaEE6 的绝佳起点。它不能回答您的所有问题,但值得一读。

标签: java jakarta-ee


【解决方案1】:
  1. 没有。您可以在不是应用服务器的容器中运行 JavaEE 的多个部分。 Servlets/JSP/JSF 您可以在 servlet 容器上运行。 JPA - 您可以使用任何设置。

  2. JavaEE“家族”的所有部分都可以独立使用,即在应用服务器之外。 Servlet 容器。 JMS 提供程序。 JTA 经理。甚至 EJB 容器。

  3. 版本 3 之前的 EJB 提供了一组您应该实现的接口,以便您的类由 EJB 容器管理。从 3.0 开始,EJB 规范主要定义注释(从开发人员的角度来看)。除此之外,它是关于 EJB 容器(应用程序服务器的一部分)应如何处理您的 EJB 的规范

  4. Glassfish、JBoss 和 Geronimo(以及其他一些)是功能齐全的应用程序服务器。 Tomcat、Jetty 和 Spring tc 服务器只是 servlet 容器——它们只处理 JavaEE 的 servlet/jsp 部分。它们可能具有附加功能(例如 tc server 的企业监控功能)。 Hibernate 是 JPA 的一种实现——对象关系映射(简而言之——你使用对象而不是 JDBC)。 RabbitMQ 是一个消息队列,我什至不确定它是否符合 JMS 规范(JavaEE 的一部分)。 GemFire 与 JavaEE 无关

  5. “Web 配置文件”仅包括 JavaEE 的某些部分(Web 应用程序中最常用的部分) - servlet、jsp、CDI、JPA、JSF、EJB (lite)。它不包括 JMS、JAX-WS 等内容。Here 是一个表格,其中列出了 Web 配置文件中包含的内容和未包含的内容。这个想法是,即使某些应用程序服务器没有实现 JavaEE 中包含的所有规范,它们也将获得认证。 Caucho Resin 就是这样一个只支持 web profile 的应用服务器。

【讨论】:

  • 谢谢博卓!那么是否可以肯定地说 EJB 容器是所有 JavaEE 应用程序服务器的组成部分,并且它们是管理 EJB 兼容 bean 的地方?最后一个问题:如果 GlassFish 是 JavaEE 参考实现,这是否意味着它包含 JavaEE 所需的所有组件(servlet 容器、EJB 容器、JMS 提供程序、JTA 管理器等)? GlassFish 是否缺少完整 JavaEE 后端所需的任何东西?再次感谢您让一切变得如此清晰!
  • Glassfish 应有尽有。与其他应用服务器一样。他们因拥有一切而获得认证:)
  • @Zac - 顺便说一句,如果答案适合您,请您将其标记为已接受(在投票柜台下方打勾)
【解决方案2】:

Bozho 对你的问题给出了很好的回答,所以我只添加这一件事。

你苦苦挣扎的原因不是因为它们很难学,而是因为有很多东西要学,而你正试图同时学习它们。如果你一次学习一个,你会没事的。

最简单的入门方法是 Servlet 和 JSP。大多数 Java EE 应用程序都使用这些技术,新手开发人员在大多数项目中都会被赋予这些任务,因此它们很实用。 Servlet 和 JSP 是允许您生成大部分具有动态(= 变量)内容的网页的规范。 Tomcat 是一个 Web 容器,它实现了 Servlet 和 JSP,并为 Servlet 和 JSP 组件提供了运行时环境。我推荐 Tomcat,因为它是开源的,并且拥有最大的市场份额。

我推荐 Marty Hall 的 Core Servlets 和 Javaserver Pages 作为初学者的书。 非常容易阅读。

【讨论】:

  • Tom - 感谢您的意见。我很高兴听到另一位已经“去过那里”的开发人员说这些东西在一个环境中需要大量咀嚼。您是否有任何书籍/文章/PDF 推荐来介绍整个 JavaEE 平台?也许,如果 GlassFish 是一个完整的 JavaEE 实现,那么关于 GlassFish 的好教程会给我这个概述吗?再次感谢!
  • 我没有什么特别值得推荐的东西,但我认为大多数关于 EJB 或 JEE 应用服务器的介绍性书籍都会对主要组件进行概述。
【解决方案3】:

博卓确实给出了很好的答案。有关 Java EE 的更多详细信息,我对另一个问题的回答可能与此相关:Frameworks for Layering reusable Architectures

您可能还想阅读我在维基百科上编辑的关于 EJB 的文章:http://en.wikipedia.org/wiki/Enterprise_JavaBean

对子问题 3 补充一点:

您可以将 EJB 容器视为一种扩展的 JVM。 “普通”JVM 提供自动管理 Java 类内存的服务。 EJB 容器提供额外的服务,例如自动管理事务和池。

将常规类制作成 EJB 非常简单。你只需要添加@Stateless 注解:

@Stateless 
public class SomeBean {

    // ... 

}

在此之后,bean 中的所有方法都是自动事务性的,并且 SomeBean 的实例会自动汇集,而不是在需要时重新创建。

要意识到的重要一点是,这种“托管 bean”不能用常规的 new 运算符实例化。它们必须通过注释注入。如果再用普通的 JVM 类比,你可以说这个注解是一种“托管新操作符”:

public class SomeOtherManagedBean {

   @EJB
   SomeBean someBean;
}

需要注意的是,这里的注入仅适用于其他托管 bean。在非托管环境中,您可以通过 JNDI 查找引导实例。

在 Java EE 中,EJB bean 传统上意味着只包含纯业务逻辑。在 Java EE 的最后一个版本 Java EE 6 中,已经开始尝试将统一组件模型中的托管 bean 概念引入应用程序的所有部分。这是通过 CDI 规范完成的,该规范还定义了一种组件类型,简称为“托管 bean”。 EJB 模型最终可能会被改造为一组 CDI 注释。

【讨论】:

  • 最后你回答了最令人不安的问题:什么是 EJB 和容器。谢谢你。我希望我能投票更多。
猜你喜欢
  • 2014-06-19
  • 2013-03-23
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 2018-05-25
  • 2014-11-28
相关资源
最近更新 更多