Java 容器的定义

2022-09-01 00:31:20

我已经读过很多次关于java容器(如servlet容器)的文章,但是,我似乎找不到企业Java世界中容器的良好定义。

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


答案 1

Java EE中常见的容器是servlet容器和EJB容器,我认为这些是IoC(控制反转)容器的例子。关键方面是:

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

答案 2

更一般地提到容器模式(企业Java容器可以被认为是一种特化),M.Volter等人的《服务器组件模式》一书提供了以下内容:

[容器提供]一个执行环境,负责将技术问题添加到组件中...从概念上讲,它包装了组件,从而给客户一种紧密集成的功能和技术问题的错觉。

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