Java容器的定义

Java容器的定义,java,jakarta-ee,terminology,Java,Jakarta Ee,Terminology,我已经读过\听过很多次关于java容器(如servlet容器)的内容,但是,我似乎找不到一个好的定义来说明在企业java世界中容器是什么 有人知道企业java容器的好定义吗?java EE容器 通常,瘦客户机多层应用程序很难编写 因为它们需要处理许多行复杂的代码 事务和状态管理、多线程、资源池、, 以及其他复杂的底层细节。基于组件和 独立于平台的JavaEE体系结构使JavaEE应用程序 易于编写,因为业务逻辑被组织为可重用的 组件。此外,JavaEE服务器还提供了底层 每个组件类型的容器形式的

我已经读过\听过很多次关于java容器(如servlet容器)的内容,但是,我似乎找不到一个好的定义来说明在企业java世界中容器是什么

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

java EE容器

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


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


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

更一般地指容器模式(其中企业Java容器可以被视为一种专门化),M.Volter等人的书提供了以下内容:

[容器提供]负责的执行环境 为组件添加技术问题…从概念上讲 包装组件,从而使客户端产生 紧密集成的功能和技术问题


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

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

  • 您的代码没有任何main()或“在此处等待请求逻辑”-容器启动并自行配置,然后最终初始化代码并发送请求
  • 您的代码可能是许多类似类(servlet容器中的servlet,EJB容器中的EJB)中的一个,其实例的生命周期由容器控制
  • 请求通过容器定义的某种协议传递到servlet或EJB,使用容器控制的资源(例如HTTP端口),并且可能具有相当的基础设施智能(查看HTTP请求队列、EJB负载平衡等)
  • 诸如事务控制和安全管理之类的功能有相当大的附加值——当容器调用您的代码时,它非常适合以非侵入方式实现这一点
  • 主要的容器功能非常重要,容器会在适当的时间调用代码,但是容器也会提供代码可以调用的有用API(例如获取Servlet或EJB上下文)
  • 容器是组件与支持该组件的低级平台特定功能之间的接口。在执行web组件、企业bean或应用程序客户端组件之前,必须将其组装到Java EE模块并部署到其容器中 以下是我的资料来源:

    它负责维护服务器端的各个组件,包括Java servlet、Java服务器页面和Java服务器面。

    容器在Java开发环境中,指服务器的一部分,负责管理Web应用程序的生命周期借助XML格式的契约指定所需的生命周期管理。客户端无法直接访问Web容器。相反,服务器管理Web容器,而Web容器反过来管理Web应用程序代码


    Ref-

    容器是带来动态性的执行环境。它创建HTTP响应,将HTTP请求转换为对象,并创建和管理servlet生命周期

    JavaEE是用于解决企业问题(如安全性、可伸缩性、健壮性、可用性等)的规范集合


    管理JavaEE的每个规范的容器称为Java企业容器。例如glassfish、JBoss等(顺便说一句,Tomcat不是EE容器,而是web容器)

    容器是否总是IoC?例如,servlet容器。任何现代servlet容器都肯定使用IoC的范例。虽然没有正式的规范,但人们普遍认为这是我们知道如何解决该问题的最佳方法。