再看JavaEE
Posted 有且仅有
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再看JavaEE相关的知识,希望对你有一定的参考价值。
一年前刚开始写博客时写了篇《JavaEE总论》,又工作了一年,今天无意间回过头来看到这篇文章颇有些感慨,感觉对一个事物的认识一定是一个渐进的过程,每过一段时间就会有一些新的认识。
今天就是这样,有一些新的认识想写下来分享给大家。
再看JavaEE
来到Oracle 官网,进入JavaEE 菜单,如下图:
可以看到,选项卡依次是:综述、下载、文档、社区、技术、练习。这其中:
- 技术:这个里面是所有的JavaEE技术体系 的规范文档;
- 社区:是JavaEE 相关技术的社区;
- 文档:所有JavaEE 文档的浏览、下载;
- 下载:JavaEE 技术的官方实现(官方SDK );
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实现 去开发。
以上是关于再看JavaEE的主要内容,如果未能解决你的问题,请参考以下文章