这篇文章旨在澄清J2EE范例中使用的首字母缩写词和概念。 J2EE代表Java to Platform,Entreprise Edition。 它使创建模块化Java应用程序成为可能,并将其部署在应用程序服务器上。 它依赖于Java SE,Java SE是一组Java库的核心,所有Java应用程序都在该Java库上实现。
一般概念
在深入探讨J2EE之前,这里提醒您一些一般概念:
- 多层应用程序 –多层应用程序(或多层体系结构)是分为多个逻辑部分的应用程序,这些逻辑部分(通常)在多台服务器上实现。 例如,具有用户及其浏览器,应用程序服务器和位于单独服务器上的数据库的3层模型处理应用程序服务器请求。
- 多层服务 –考虑3层模型中的服务时,应用程序服务器是提供对用户请求的响应的服务。 数据库服务器提供对应用程序服务器查询的答案。
- Java Bean –这些Java类包含私有属性,可使用getter和setter方法进行访问。 从技术上讲,这些类还必须具有无参数构造函数并实现Serializable接口。
J2EE 5概念
- Java EE应用程序模型 –此模型描述了实现服务的多层体系结构。 定义服务定义的边界并没有明确定义。 实际上,服务是一个逻辑概念,其具体/实际对应项取决于实现这些概念的应用程序。 例如,它是客户机/服务器模型中的服务器。
- Java EE Server –它是J2EE范例中的3层范例的应用服务器。 它由Web层(服务JSP页面)和业务层(管理企业Java Bean)组成。
- Java EE组件 –“组件”是指与其他组件结合使用以构建应用程序的独立软件单元。
- Web组件 –生成页面或返回给用户查询的内容的Web层的一部分。 通常,这些是Java Servlet,JavaServer Faces和Java Server Pages。
- Applet –作为对用户请求的响应的一部分发送的小型Java软件应用程序,旨在在用户的浏览器中运行。 小程序与Javascript竞争。
- 应用程序客户端 –例如,用Java编写的桌面应用程序。
- 企业Java Bean –参见下文。
- Java EE客户端 –此概念重组了其他三个概念:
- Web客户端(或瘦客户端) –在过去(不是这样),返回客户端请求的网页通常包含在将结果返回给客户端之前在应用程序服务器上执行的代码脚本。 这些页面被视为EE客户。 例如,可以查询雇员列表并根据查询的用户显示不同的结果。 今天,大多数开发人员不再在其网页中包含脚本。 这被认为是不好的做法。 他们倾向于使用MVC设计原则,该原则禁止这些页面中的脚本。
- 小程序
- 应用客户端
- Java EE服务器通信 –这是指瘦客户机与应用程序客户机与应用程序服务器之间发生的通信。 通常,瘦客户端和小程序与Web层通信,而应用程序客户端与EJB通信。
您也不太清楚吗? 您认为这很麻烦? 欢迎来到俱乐部! 这就是为什么REST原则以及MVC设计原则在当今Web应用程序开发中盛行的原因。
- EJB(企业Java Bean) –这是一个逻辑概念,与传统Java Bean没有任何关系。 它基本上试图将业务逻辑封装在多层应用程序的后端(即服务器端)上。 它最初试图解决的一个关键问题是数据库的事务完整性。 警告:已经有多个版本的EJB,而版本3.0与先前的版本明显不同。
- JavaBean组件 –它是Java Bean的同义词,主要用于JSP范例中。
- Java EE容器 –此处是组装Java EE组件的部署位置(即,在应用程序服务器上)。 其中一个定义了包含servlt和JSP页面的Web容器,以及包含Entreprise Java Bean的EJB容器。 还定义了用于独立应用程序的应用程序客户端容器和浏览器中的applet容器。
- 部署描述符 –这是一个XML文件,提供打包应用程序的部署信息。 有关更多信息,请参见此处 。
- SOAP(简单对象访问协议) –它是一种在Web上提供的服务之间交换消息的协议。 消息是根据XML构造的,可以通过许多传输层(最常见的是HTTP)进行交换。 SOAP与JSON和类似REST的服务竞争。
- WSLD(Web服务描述语言) –它使用XML文档(名称,位置,通信模式)描述网络服务。
- UDDI(通用描述,发现和集成)ebXML –用于在线发布有关产品和服务的信息。
- Java Servlet – Servlet是一个Java类,用于处理传入的用户HTTP请求并返回结果。
- JSP(JavaServer页面) –经过处理以生成静态内容的基于文本HTML文档(即一种模板)。 它可以包含脚本代码段,这些代码段被执行以呈现最终的静态文档。
- JSTL(JavaServer页面标准标记库) – JSP中用于模仿脚本代码功能的一组标准标记。 例如,遍历客户端列表以显示其相应信息。 如今,此类标记已取代了JSP中的脚本代码。 它们通常用于生成用信息填充页面以显示给用户。
- JSF(Java Server Face) –这些是JavaServer Page,其中包含JavaServer Face标记(与JSTL标记相似)。 另外,JSF允许定义页面之间的导航模型(类似于Spring Web流)。 它还包括Facelets。
- Facelets – Facelets是JSF的MVC视图部分。 它基本上使用提供的数据(例如,带有客户端列表)将模板转换为HTML文档。 它还可以提取部分生成的文档(例如HTML正文),并将其包含在另一个模板中。 这等效于Sitemesh所做的事情。
- 基于XML的Web服务的Java API(JAX-WS) –一种使用XML通信定义Web服务的方法。
- 用于XML绑定的Java API(JAXB) –一种将Java Bean来回转换(通常)为XML文档的方法。 有关更多详细信息,请参见此处 。
- JTA(Java事务API) –意味着通过自动提交和回滚来分隔数据库事务。
- JMS(Java消息服务) –一种API,允许通过Internet在应用程序和服务之间可靠且异步地交换消息。 ActiveMQ实现JMS。
- JavaMail API –一种从应用程序发送电子邮件的方法。
- JAXP(用于XML处理的Java API) –启用XML文档的处理。
- JAXR(用于XML注册表的Java API) –一种API,允许访问包含元数据的注册表。 它基于XML。
- JDBC(Java数据库连接性) –该API使应用程序可以直接与数据库执行SQL事务。
- JCA(Java EE连接器体系结构) –它帮助应用程序获得与信息系统(通常是数据库)的连接。 有关更多详细信息,请参见这篇文章 。
- JPA(Java持久性API) –这是一个ORM(对象/关系映射)定义,用于帮助将对象存储在数据库中。 有关示例,请参见此处 。
- JNDI(Java命名和目录接口) –一种存储和检索资源或使用其名称访问资源的方法。 有关更多详细信息,请参见这篇文章 。
- JAAS(Java身份验证和授权服务) –身份验证和控制对服务的访问的手段。
J2EE 6附加概念
使用J2EE 6,可以使用Java源代码中的注释执行许多配置。
- JAX-RS –定义类似REST服务的API。
- 托管Bean –可以执行注入的Java对象。 在Spring中,这些对象将是带有@Autowired注释的属性的对象(例如)。
- CDI(上下文和依赖注入) -实现和执行依赖注入的机制。 在Spring中,将提到应用程序上下文,控制反转(IoC)和依赖项注入(DI)。
- Bean验证 –一种根据预定义规则确保Java Bean状态有效的方法。
- JACC(容器的Java授权合同) –指定EE容器与授权提供者之间的关系和事务。
- JASPIC(Java身份验证服务提供者接口) –这是JACC的补充身份验证SPI(即服务API)。 它定义了应用程序如何访问传统的身份验证服务。
总体而言,Spring和J2EE朝着同一方向缓慢收敛。
参考: 技术说明博客上的JCG合作伙伴 Jerome Versrynge 对JavaEE概念的介绍 。
翻译自: https://www.javacodegeeks.com/2013/02/introduction-to-javaee-concepts.html