再看JAVAEE
软件151 雷楷文
1. 技术(Technologies)
-
技术体系
JavaEE 首先是一个技术体系,且指定了一系列的规范来定义这个技术体系。
可以看到,这里面都只是各种文档的下载。
最上面是Java EE 平台整体的技术规范,下面还有具体的Enterprise Application Technologies、Web Application Technologies、Web Services Technologies、Management and Security Technologies、java EE-related Specs in Java SE 中的各种Java EE 技术的文档。
-
所有文档都分为两类
-
阅读评估:用以让人了解规范;
-
实现:用以让想开发JavaEE实现 的人/组织/公司参考
这两类文档其实绝大部分部分一样,甚至有的就一模一样。
-
-
内容
文档中用严谨的文字、图、示例表格等形式描述了某一个java ee 技术。
2. 下载(Downloads)
-
官方实现
oracle 官方还必须对JavaEE 平台 做一个模范的实现,来给其它想开发的人带头。
可以下载Java EE 7 SDK Update 2 看一下,你会发现其实这个官方实现就是叫 GlassFish 服务器 。虽然这个SDK 实现了所有JavaEE规范 ,不过好像大家都不怎么用,而是根据需要去找了其它厂商的第三方SDK 了。
SDK就是GlassFish
各种实现 - glassfish( Web方面)、mq(JMS)、javadb等
samples - 使用这些实现的例子
3. 怎么用JavaEE API
-
API由实现方提供
所以,当我们开发Java EE 应用过程中如果要使用JavaEE API 的话,其实它是在相应的实现方的API中的,也就是实现方提供的
jar
包。比如,现在要开发一个Java EE 应用,它包含一些Web 组件 - Java Servlet 、JavaServer 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 之类的管理依赖):
-
API的差异
不同的实现方对于相同版本技术的
API Interface
的声明其实是一样的,它们都保证所实现的API 符合Java EE 规范,但是实现方式当然看实现方自己的方法了,肯定有差异。不过,这对我们普通开发人员是透明的。来看下,Maven 库中的提供的
Servlet.class
(Maven 中Java EE API地址点这里)和Tomcat的Servlet.class
差异吧:可以看到,开头部分Licence 是不同的,下面还有一些都是格式差异、注释差异我就没必要放上来了。但是代码部分是没有差异的:
4. 综上所述
-
Java EE 首先是一个技术体系、根据这些技术它有一系列规范文档,而任何想实现某个技术或全部技术的人/组织/公司都可以依据规范去开发符合规范的实现。
-
Java EE 也有官方的实现,就是GlassFish 。
-
我们可以根据需要选择任意的Java EE实现 去开发。