首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java容器的定义

Java容器的定义
EN

Stack Overflow用户
提问于 2011-08-23 01:32:23
回答 7查看 71.4K关注 0票数 44

我读过很多次关于java容器的文章,比如servlet容器,然而,在企业java世界中,我似乎找不到一个好的定义来定义容器。

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-23 02:00:20

M.Volter等人的Server Component Patterns一书更一般地提到了容器模式(可以将企业Java容器视为容器模式的专门化)。提供以下功能:

容器提供了一个执行环境,负责向COMPONENTS...Conceptually添加技术关注点,它包装了组件,从而给客户一种紧密集成的功能和技术关注点的错觉。

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

票数 22
EN

Stack Overflow用户

发布于 2011-08-23 04:32:19

Java中的常见容器是servlet容器和EJB容器,我将它们视为IoC(控制反转)容器的示例。关键方面是:

  1. 您的代码没有任何main()或“在这里等待请求逻辑”-容器启动并自我配置,然后最终初始化您的代码并交付请求
  2. 您的代码可能是许多类似类( servlet容器中的servlet,EJB容器中的EJB)中的一个,其实例具有由容器控制的生命周期。
  3. 请求通过容器定义的某种协议传递到您的servlet或EJB,使用资源(例如,HTTP端口)由容器控制,并且可能具有相当高的基础架构智能(查看HTTP请求队列、EJB负载平衡等)。
  4. 从诸如事务控制和安全管理之类的功能中获得了可观的附加值--因为容器正在调用您的代码,所以以非侵入性的方式实现这一点是非常合适的。
  5. 主要的容器功能是IOC,容器在适当的时候调用你的代码,但是容器也会提供有用的API,你的代码可以调用(例如。获取Servlet或EJB上下文。
票数 43
EN

Stack Overflow用户

发布于 2011-08-23 01:45:18

容器背后的关键概念是inversion of control,容器中的应用程序组件可以与其他应用程序组件以及它们所依赖的低级资源松散耦合。对于Java来说,这些资源通常是数据库连接、网络连接、JNDI等。

不同层次的容器支持不同的规范例如像tomcat这样的web/servlet容器不支持像EJB3这样的应用层规范,因此tomcat不能将ejb连接在一起以注入到您的应用程序中。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7151206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档