理解JavaEE

目录
  • 什么是 Java EE
  • Java EE 与 JSR 的关系
    • JCP 与 JSR 的基本概念
    • Java EE 与 JSR
  • Java EE 有哪些内容
    • Web 应用技术
    • 企业级应用技术
    • Web 服务技术
    • 管理和安全技术
    • Java SE 中与 Java EE 相关的规范
  • Java EE 与 Spring 的关系

什么是 Java EE

Java EE(Java Platform, Enterprise Edition)是 Java 官方提供的一套技术规范,旨在为企业级软件提供标准化的开发模型。Java EE 规范包括一组说明文档、一组标准化 API 和参考实现。

注:J2EE 是 Java EE 的旧称。JEE 是 Java EE 的简称。

Java EE 与 JSR 的关系

JCP 与 JSR 的基本概念

  • JCP(Java Community Process,Java 社区流程)是一套审核与标准化 Java 技术规范的流程
  • JSR(Java Specification Requests,Java 规范提案)是指提交到 JCP 上 的 Java 技术规范的正式提案
  • JCP 规定,每个 JSR 都必须附带一个参考实现。如,JSR 221 : JDBC 4.0,其参考实现为 JDK 9;JSR 380 : Bean Validation 2.0,其参考实现为 Hibernate Validator
  • 每个 JSR 都是对外公开的;
  • 原则上任何人都可以注册成为 JCP 会员,任何 JCP 会员都可以发起 JSR,来改进和扩展 Java 技术规范。

Java EE 与 JSR

  • Java EE 规范也是以 JSR 的形式发布的,每一个版本的 Java EE 都是一个 JSR,如,Java EE 7 对应于 JSR 342; Java EE 8 对应于 JSR 366。 Java EE 规范同样需要通过 JCP 的严格审核。
  • Java EE 规范可以认为是一系列 JSR 的集合,一个Java EE 规范中往往会包含很多个 JSR。
  • 我们知道,每个 JSR 都必须要有参考实现。Java EE 也是一样的,它的实现被称为 Java EE 应用服务器 (Java EE Application Server)。Java EE 的参考实现是 Glassfish Application Server。

Java EE 有哪些内容

Java EE 采用“规范与厂商分离”的策略,官方只负责规范的制定,而规范的具体实现则由各个厂商来完成。厂商可以选择完整实现全部规范,如 JBoss,也可以选择部分实现,如 Tomcat,但只有完整实现的才能够称之为Java EE 应用服务器。

Java EE 标准化 API 属于规范的一部分,它们皆位于 javax 包下,如 javax.servlet

以下是 Java EE 8 中的主要内容:

Web 应用技术
  • Java Servlet 4.0 JSR 369
  • JavaServer Pages (JSP) 2.3 JSR 245
  • JavaServer Faces (JSF) 2.3 JSR 372
  • Java API for WebSocket 1.1 JSR 356
  • Java API for JSON Binding (JSON-B) 1.0 JSR 367
  • Java API for JSON Processing 1.1 JSR 374
  • Expression Language (EL) 3.0 JSR 341
  • Standard Tag Library for JavaServer Pages (JSTL) 1.2 JSR 52
企业级应用技术
  • Enterprise JavaBeans (EJB) 3.2 JSR 345
  • Bean Validation 2.0 JSR 380
  • Interceptors 1.2 JSR 318
  • Java Persistence (JPA) 2.2 JSR 338
  • Contexts and Dependency Injection (CDI) 2.0 JSR 365
  • Common Annotations 1.3 JSR 250
  • Java Message Service (JMS) API 2.0 JSR 343
  • Java Transaction API (JTA) 1.2 JSR 907
  • JavaMail 1.6 JSR 919
Web 服务技术
  • Java API for RESTful Web Services (JAX-RS) 2.1 JSR 370
  • Implementing Enterprise Web Services 1.3 JSR 109
  • Web Services Metadata 2.1 JSR 181
管理和安全技术
  • Java EE Security API 1.0 JSR 375
  • Java Authentication Service Provider Interface for Containers 1.1 JSR 196
  • Java Authorization Contract for Containers 1.5 JSR 115
  • J2EE Management 1.1 JSR 77
Java SE 中与 Java EE 相关的规范
  • Java Management Extensions (JMX) 2.0 JSR 3
  • SOAP with Attachments API (SAAJ) 1.3 JSR 67
  • Streaming API for XML (StAX) 1.0 JSR 173
  • Java API for XML Processing (JAXP) 1.6 JSR 206
  • Java Database Connectivity (JDBC) 4.0 JSR 221
  • Java Architecture for XML Binding (JAXB) 2.2 JSR 222
  • Java API for XML-Based Web Services (JAX-WS) 2.2 JSR 224
  • JavaBeans Activation Framework (JAF) 1.1 JSR 925

Java EE 与 Spring 的关系

Spring 作为一个轻量级的企业级软件开发框架,从一开始就没打算要跟着规范走,因为当时的 Java EE 规范实在是太繁琐了。如果说 Java EE 是学术派,那么 Spring 就是实践派,Spring 也并不是要完全摒弃学术大佬们制定的那套规范,相反,Spring 大量借鉴和使用了 Java EE 的东西。Spring 秉着“一切从实际出发”的原则,对 Java EE 的那套规范及其实现,好用的直接拿来用,不好用的则自己独立实现一个。由此可见,Java EE 与 Spring 并不是对立的。

由于早期 Java EE (尤其是 EJB)的繁琐与笨重,轻量级的 Spring 得到了越来越多的开发者的拥护。当 Spring 逐渐占据领导地位之后,Java EE 的一些标准反而要跟着 Spring 走,CDI 就是一个很好的例子。

你可能感兴趣的:(理解JavaEE)