Java容器的定义

jav*_*y79 42 java terminology java-ee

我已经阅读了很多次关于java容器的信息,比如servlet容器,但是,我似乎无法找到容器在企业级Java世界中的定义.

有谁知道企业java容器的良好定义?

djn*_*jna 41

Java EE中的公共容器是servlet容器和EJB容器,我将这些视为IoC(控制反转)容器的示例.关键方面是:

  1. 您的代码没有任何main()或"在这里等待请求逻辑" - 容器启动并自行配置,然后最终初始化您的代码并提交请求
  2. 您的代码可能是许多类似类中的一个(servlet容器中的servlet,EJB容器中的EJB),其实例具有由容器控制的生命周期.
  3. 请求通过容器定义的某个协议,使用容器控制的资源(例如HTTP端口),以及可能具有相当大的基础架构聪明性(查看HTTP请求队列,EJB负载平衡等),将请求传递到您的servlet或EJB.
  4. 事务控制和安全管理等功能具有相当大的附加值 - 因为容器正在调用您的代码,因此可以非常有效地实现这一功能.
  5. 主容器功能非常多IOC,容器在适当的时候调用您的代码,但容器也将提供您的代码可以调用的有用API(例如,获取Servlet或EJB上下文.


Bra*_*lor 20

更一般地参考Container模式(其中企业Java容器可被视为专业化),M.Volter等人的书籍服务器组件模式.提供以下内容:

[CONTAINER提供]一个执行环境,负责向COMPONENTS添加技术问题......从概念上讲,它包含了COMPONENTS,从而为客户提供了紧密集成的功能和技术问题的假象.

此类技术问题的示例包括安全性,事务管理,日志记录等.


Mar*_*era 7

Java EE容器

通常,瘦客户端多层应用程序很难编写,因为它们涉及许多复杂的代码来处理事务和状态管理,多线程,资源池和其他复杂的低级细节.基于组件和独立于平台的Java EE体系结构使Java EE应用程序易于编写,因为业务逻辑被组织成可重用的组件.此外,Java EE服务器以每个组件类型的容器形式提供底层服务.因为您不必自己开发这些服务,所以您可以集中精力解决手头的业务问题.

http://download.oracle.com/javaee/5/tutorial/doc/bnabo.html


jpr*_*ham 5

容器背后的关键概念是控制反转,其中容器内的应用程序组件可以与其他应用程序组件以及它们所依赖的较低级别资源松散地耦合.对于Java,这些资源通常是数据库连接,网络连接,JNDI等.

不同的容器层支持不同的规范,例如web/servlet容器,如tomcat不支持某些应用程序级规范,如EJB3,因此tomcat无法将ejb连接在一起以便注入到您的应用程序中.

  • 容器总是IoC吗?例如,servlet容器. (2认同)