企业级Java标准体系及产品级服务器TomEE

导引作为当前业界最成熟的编程语言的JAVA,以其开发的各类应用,可以说是涉及到每个领域,包括而不限于桌面应用、Web应用、移动应用、智能终端、云端应用、IoT应用、大数据应用、AI应用、区块链应用等等,基本是无所不包,而且围绕Java形成的各类生态圈也蔚然繁荣 。同时,以JVM为核心的Java语言也在不断的兼蓄并包其它语言的特性与优点,依然在稳健的发展中 。
我们知道,为了保持Java的新特的快速验证和应用采纳,其版本的发布周期早已更改,目前Java SE 14已发布,Java 15的到来也为其不远了 。
随着Java SE新特的引入,Java企业版也相应的做了很多更新和改进,尤其为了适应现代的企业级开发和微服务架构风格的应用,最新的企业级Java也已经稳定采用在,最新的企业级Java为 Jakarta EE 8(脱胎于Oracel的Java EE 8,由于托管给Eclipse基金会而重新发布的企业级Java规范,与Java EE 8本质上一样) 。
为了更好的理解企业级Java ,那么我们就来总体认识一下最新的Jakarta EE 8,了解一下其规范标准的总体结构组成 。
Jakarta EE结构总览企业级Java由一系列标准规范组成,各个规范的最终实现产品,一般根据产品自身的定位而选择性实现不同标准,而并非强制性要求要实现所有规范,比如Tomcat实现为Servlet容器,OpenJPA实现了JPA应用规范,glassfish则实现了所有企业级标准 。也就是说,开发的应用程序所依托的服务器产品的实现是按照不同的需求而实现相应规范或全部规范的 。
对于企业级Java标准体系构成,总体可以参照如下架构模型来加以理解:

企业级Java标准体系及产品级服务器TomEE

文章插图
Jakarta EE 8规范体系架构
如图上所示,它描述了Java EE平台架构元素之间的关系 。注意,该图显示的是组件元素之间的逻辑关系,而并不意味着将元素物理地划分为单独的机器、进程、地址空间或虚拟机等 。
容器(用单独的矩形表示)是Java EE运行时环境,为矩形上半部分中表示的应用程序组件提供所需的服务 。所提供的服务由矩形下半部分的方框表示,一些由应用服务器实现的符合规范的组件 。例如,应用客户端容器向应用客户端提供Java消息服务(JMS) APIs以及所表示的其他服务 。下面将解释所有这些服务 。参见 下图“Java EE标准服务组件” 。
箭头表示需要访问Java EE平台的其他部分 。应用客户端容器通过JDBC API与数据库系统连接,为应用客户端提供了对Java EE所需数据库的直接访问 。由Web容器为JSP页面、JSF应用和servlet提供类似的数据库访问,EJB容器为企业bean提供类似的访问 。
如前所述,Java平台标准版(Java SE)的APIs由Java SE运行时环境为每种类型的应用组件提供支持 。
企业级Java标准体系及产品级服务器TomEE

文章插图
Java EE标准服务组件
作为完整Java EE 产品规范需求,产品级中间件服务器必须实现其中的一些规范 。
而且作为 EE 8产品规范,要完整支持Java SE 8以及由公共注释规范定义的资源和组件生命周期注释(Resource , Resources , PostConstruct ,PreDestroy) 。同时,所有企业级产品必须支持JNDI “java:” 命名上下文以及Java Transaction API (JTA) 。
对于上述的企业标准规范,其相关组件规范的版本情况,罗列如下:
1) EJB 3.2
2) Servlet 4.0
3) JSP 2.3
4) EL 3.0
5) JMS 2.0
6) JTA 1.2
7) JavaMail 1.6
8) Connector 1.7
9) Web Services 1.4
10) JAX-RS 2.1
11) WebSocket 1.1
12) JSON-P 1.1
13) JSON-B 1.0
14) Concurrency Utilities 1.0
15) Batch 1.0
16) Java EE Management 1.1
17) JACC 1.5
18) JASPIC 1.1
19) Java EE Security 1.0
20) JSP Debugging 1.0
21) JSTL 1.2
22) Web Services Metadata 2.1
23) JSF 2.3
24) Common Annotations 1.3
25) Java Persistence 2.2
26) Bean Validation 2.0
27) Managed Beans 1.0
28) Interceptors 1.2
29) Contexts and Dependency Injection for Java EE 2.0
30) Dependency Injection for Java 1.0
可选实现规范:
1) EJB 3.2 and earlier entity beans and associated EJB QL
2) JAX-RPC 1.1
3) JAXR 1.0
4) Java EE Deployment 1.2
企业级Tomcat:TomEETomEE,可对等看作企业级Tomcat,肯定是比作为Servlet容器的Tomcat更强大,简单的记住根本的一条:若无前者Tomcat的存在,则后者TomEE无从谈起 。若Tomcat不是能满足你开发软件所要求的后端应用服务器,那你即可以考虑TomEE了
下面我们还是来更明确的梳理一下Tomcat和TomEE 。


推荐阅读