什么是javaEE?
Java Platform, Enterprise Edition(Java EE) 为设 计、开发、装配和部署企业应用程序提供了一个基于组件的方法。
通过Java EE平台,可以
- 更快地构建创新的商业解决方案
- 基于Java EE组件的平台独立性,使开发的应用不依赖于 特定厂商的产品和API
- 软件厂商和客户都能自由地选择符合其需求的产品和组件
1 javaEE组件
1.1 什么是组件
A Java EE component is a self-contained functional software unit that is assembled into a Java EE application with its related classes and files and that communicates with other components.
从上面这句话可以看出,javaEE组件:
- 具有独立功能的单元
- 通过相关的类和文件组装成JavaEE应用程序
- 与其它组件相交互。
1.2 组件类型:
1.客户端组件:即javaBean类,基于SE运行在客户端容器内,有自己独立的JVM空间。
2.web组件:能接收HTTP请求并进行处理产生web响应,并规定了两种Web组件
Servlet:使用标准java类编写模式的Web组件,但是难以开发复杂的Web应用
JSP:使用编写HTML网页的方式编写Web组件,嵌入java语言代码。
3.EJB组件:引入Spring框架和注释编程技术,推出了3.0组件规范实现了轻量化目标,结构简单部署方便调用容易。
企业bean
Enterprise JavaBeans ,即企业bean,执行业务逻辑,三种企业bean是:
Session beans 会话beans,管理会话机制。
Entity beans ( 在Java EE 5中被Java persistence API entities取代)
Message-driven beans
1.3 JavaEE架构各层组件间的交互
如下图是一个3层架构,第一层是用户层用来展示用户界面,第二层是服务层,细分为web层和业务层,第三层是数据服务层,管理数据库和数据的持久化服务。

2 容器
2.1 为什么需要容器?
1. 瘦客户端多层应用程序开发面临的难题:
事务管理
状态管理
多线程
资源池
其它复杂的底层细节
2. Java EE服务器对所有类型的组件,以容器的形式提供了一组底层服务。开发者不需重复开发,而只需关注业务问题。
2.2 什么是容器?
容器是一个组件和支持组件的底层平台特定功能之间的界面。
Web组件、企业Bean、应用客户端组件必须组 装成Java EE模块并部署于容器中才能执行。
也就是说容器提供底层环境,把组件部署到容器中就可以运行。
下图是java EE 服务器和容器之间的交互过程。

2.3 容器技术的优点:
极其轻量:只打包了必要的Bin/Lib;
秒级部署:根据镜像的不同,容器的部署大概在毫秒与秒之间(比虚拟机强很多);
易于移植:一次构建,随处部署;
弹性伸缩:Kubernetes、Swam、Mesos这类开源、方便、好使的容器管理平台有着非常强大的弹性管理能力