容器的概念
广义上讲容器是用来包装或装载物品的贮存器(如箱、罐、坛)或者成形或柔软不成形的包覆材料。在编程领域中,容器提供组件运行的环境,容器本身可以提供一组服务,让组件按标准方式利用。这里的容器容器比现实中的更为抽象,但思想是想通的。
容器与应用服务器(更确切的说,应该是应用服务器软件)
最开始接触tomcat的时候,有人喊它容器,也有人叫它应用服务器。我就想啦,容器和应用服务器什么关系呀?我查了大量资料,还是没有真正区分开这两个概念。资料显示,在软件开发领域,容器基本上等同于应用服务器,貌似它们是从不同的角度对同一事物的描述。我觉得容器属于应用服务器。
j2ee容器
先来张图片:
对图片的解释说明:
j2ee接口
一组标准java企业api版本,对实现这些标准接口的jzee企业组件提供数据库、web、应用程序服务器平台之间的独立性。
我的理解:这就是所谓的面向接口的编程,不依赖具体的实现,只依赖接口。
j2ee接口实现
java企业api的java企业服务提供者实现方法。
我的理解:j2ee应用服务器要实现j2ee的十三种规范。比如:jboss就实现了j2ee的所有规范,而tomcat没有全部实现,所以jboss是j2ee应用服务器,而tomcat不算是j2ee应用服务器。
资源管理服务
资源管理提供高效、可伸缩、可依赖的计算环境。也用于管理与连接分布式数据库或外部系统过程相关联的资源。
部署/配置服务
可配置和可移植地部署j2ee组件的环境。
j2ee平台
j2ee所用的java2标准版(j2se),包括java运行环境提供的j2se硬件与操作系统平台无关特性,还包括j2se
api提供的各种公共编程和分布式通信服务。
容器的分类
j2ee规范定义了四种容器,分别是:小程序容器、应用程序客户机容器、web应用程序容器、ejb应用程序容器。开发b/s系统的人员,经常接触到的是web应用程序容器和ejb应用程序容器。
容器的作用
一张图胜过千言万语,来张图。
上图很形象的为我们描述了容器与组件的关系,不同类型的组件存放在不同的容器中,容器为它里面的组件提供运行的环境等基础支持。从某种意义上说,容器也是抽象、提取的结果,它将组件中公用的东西提取出来,提前为我们实现,给我们的开发带来了很大的便利。
就写这么多吧,以上有哪些理解不到位的地方,还望大家批评指正。