再看JavaEE

一年前刚开始写博客时写了篇《JavaEE总论》,又工作了一年,今天无意间回过头来看到这篇文章颇有些感慨,感觉对一个事物的认识一定是一个渐进的过程,每过一段时间就会有一些新的认识。
今天就是这样,有一些新的认识想写下来分享给大家。

再看JavaEE

来到Oracle 官网,进入JavaEE 菜单,如下图:

这里写图片描述
可以看到,选项卡依次是:综述、下载、文档、社区、技术、练习。这其中:

  • 技术:这个里面是所有的JavaEE技术体系 的规范文档;
  • 社区:是JavaEE 相关技术的社区;
  • 文档:所有JavaEE 文档的浏览、下载;
  • 下载:JavaEE 技术的官方实现(官方SDK );

1. 技术(Technologies)

  1. 技术体系

    JavaEE 首先是一个技术体系,且指定了一系列的规范来定义这个技术体系。

    这里写图片描述

    可以看到,这里面都只是各种文档的下载。

    最上面是Java EE 平台整体的技术规范,下面还有具体的Enterprise Application TechnologiesWeb Application TechnologiesWeb Services TechnologiesManagement and Security TechnologiesJava EE-related Specs in Java SE 中的各种Java EE 技术的文档。

  2. 所有文档都分为两类

    这里写图片描述

    • 阅读评估:用以让人了解规范;

    • 实现:用以让想开发JavaEE实现 的人/组织/公司参考

    这两类文档其实绝大部分部分一样,甚至有的就一模一样。

  3. 内容
    文档中用严谨的文字、图、示例表格等形式描述了某一个Java EE 技术。

2. 下载(Downloads)

  1. 官方实现

    Oracle 官方还必须对JavaEE 平台 做一个模范的实现,来给其它想开发的人带头。

    这里写图片描述

    可以下载Java EE 7 SDK Update 2 看一下,你会发现其实这个官方实现就是叫 GlassFish 服务器 。虽然这个SDK 实现了所有JavaEE规范 ,不过好像大家都不怎么用,而是根据需要去找了其它厂商的第三方SDK 了。

    SDK就是GlassFish
    这里写图片描述

    各种实现 - glassfish( Web方面)、mq(JMS)、javadb等
    这里写图片描述

    samples - 使用这些实现的例子
    这里写图片描述

3. 怎么用JavaEE API

  1. API由实现方提供

    所以,当我们开发Java EE 应用过程中如果要使用JavaEE API 的话,其实它是在相应的实现方的API中的,也就是实现方提供的jar包。

    比如,现在要开发一个Java EE 应用,它包含一些Web 组件 - Java ServletJavaServer Page(JSP) 。我们常用的是Tomcat,先来看下Tomcat 自己的介绍吧:

    The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. - 简单翻译就是:Tomcat是4种Java EE技术的开源实现。

    进一步,我们可以看到Tomcat 提供的jar包有:

    这里写图片描述

    所以,现在你应该明白了为什么当你开发基本的Java EE Web应用 时需要引用Tomcat 的库了(当然你也可以用Maven 之类的管理依赖):

    这里写图片描述

  2. API的差异

    不同的实现方对于相同版本技术的API Interface的声明其实是一样的,它们都保证所实现的API 符合Java EE 规范,但是实现方式当然看实现方自己的方法了,肯定有差异。不过,这对我们普通开发人员是透明的。

    来看下,Maven 库中的提供的Servlet.classMaven 中Java EE API地址点这里)和Tomcat的Servlet.class差异吧:

    可以看到,开头部分Licence 是不同的,下面还有一些都是格式差异、注释差异我就没必要放上来了。但是代码部分是没有差异的:

    这里写图片描述

    这里写图片描述

4. 综上所述

  • Java EE 首先是一个技术体系、根据这些技术它有一系列规范文档,而任何想实现某个技术或全部技术的人/组织/公司都可以依据规范去开发符合规范的实现。

  • Java EE 也有官方的实现,就是GlassFish

  • 我们可以根据需要选择任意的Java EE实现 去开发。

猜你喜欢

转载自blog.csdn.net/u010297957/article/details/51746294