java里哪些东西依赖容器?如ejb依赖jboss,除了这个,还有哪些东西依赖容器?

java里哪些东西依赖容器?如ejb依赖jboss,除了这个,还有哪些东西依赖容器?

问题描述:

java里哪些东西依赖容器?如ejb依赖jboss,除了这个,还有哪些东西依赖容器?

我直接 摘 JavaEE规范中的给你看吧

建议去下载份 Java EE 6规范 看看

2.3.1 Java EE服务器为应用程序组件提供支持

Java EE服务器为符合标准的应用程序组件提供部署,管理和运行的支持。根据它们所以依赖的Java EE服务器,应用程序组件可以分成3类:

部署,管理和运行在Java EE服务器上的组件。这类组件包括Web组件和EJB组件。请查看这些组件各自的规范。
部署和管理在Java EE服务器上,但是被加载到客户机上运行的组件。这类组件包括诸如HTML页面和嵌入THML页面的Applet这样Web的资源。
部署和管理没有完全定义在本规范中的组件。应用程序客户端就属于这种类型。本规范的未来版本可能会更完整地定义应用程序客户端的部署和管理。请查看EE.10, “应用程序客户端”中对应用程序客户端的描述。
2.4 容器

容器为Java EE应用程序组件提供了运行时支持。容器提供了一份从底层Java EE API到应用程序组件的联合视图。Java EE应用程序组件不能直接地与其它Java EE应用程序组件交互。它们通过容器的协议和方法来达成它们之间以及它们与平台服务之间的交互。在应用程序组件和Java EE服务之间插入一个容器,这允许该容器透明地为组件注入必须的服务,例如声明式事务管理,安全检查,资源池和状态管理。

一个标准的Java EE产品会为每个应用程序组件类型提供一个容器: 应用程序客户端容器,Applet容器,Web组件容器, 企业Bean容器。

2.4.1 容器的标准

本规范要求容器提供一个由JavaTM平台标准版规范v6 (Java SE)定义的JavaTM兼容性运行时环境。Applet容器可以使用Java插件产品来提供这个环境,或者是使用本地环境。提供JDKTM 1.1 API的Applet容器超出了本规范的范围。

容器工具必须识别部署应用程序组件的打包文件格式。

容器由Java EE产品供应商提供。请查看2.11.1,“Java EE产品供应商”中对产品供应商角色的描述。

本规范定义了一套标准服务,每个Java EE产品必须提供支持。后面会对这些标准服务进行描述。Java EE容器提供了访问这些服务的API,供应用程序组件使用。本规范也描述了用连接器扩展Java EE服务的标准方法,以结合其它的非Java EE应用程序系统,例如大型机系统和ERP系统。

2.4.2 Java EE服务器

Java EE容器是底层服务器的组成部分。Java EE产品供应商通常使用现有的事务处理框架结合Java SE技术来实现Java EE服务器端功能。Java EE客户端功能通常构建于Java SE技术。

java web项目都依赖web服务器

并不能单独意义上讲ejb依赖jboss。能部署ejb的web容器多了。想glassfalsh,weblogic,resin

web服务器,严格意义上讲就是实现http协议的最基本功能,能监听指定服务器端口,并接受请求发出响应的服务系统。例如apache、nginx等都是此类。不过现实中很多web服务器出于种种考虑回内置针对特定语言或架构的处理体系,例如iis内置了asp.net的处理架构,apache也可以通过扩展提供php、rails等处理架构(这些特别内置的模块,你也可以简单理解为web容器了)。如果web服务器自己不处理特别请求,那么可以通过cgi等方式转发给后端处理,例如apache、nginx都可以通过fastcgi将请求转发给后端端口,例如php-fpm服务,或python的什么服务等等。

其实在java之前一直不太有web容器这种说法,到目前似乎也只有java是这么提的。这主要是因为整个java的web开发是基于javaEE的servlet技术体系,该体系规范规定了web请求的整个生命周期的方方面面。但是规范只是规定了实现的标准,或者说是接口(interface),具体实现都是各厂商自己搞定,所以这就出现了各种不同的web容器,例如tomcat、jetty、jboss等等。

又说回来,这些容器为了方便开发者,大多都提供了web服务器的功能,不过和专业的web服务器相比总有些缺失不足,所以一般只用来做开发用,生产环境主要还是作为后端服务。

栈,队列,HashMap等都是用容器实现的