gpt4 book ai didi

java - 'component architecture' 和 'modular architecture' 之间的区别

转载 作者:行者123 更新时间:2023-11-29 07:18:29 26 4
gpt4 key购买 nike

OSGi是模块化架构,JavaBeans是组件架构。有什么区别?

最佳答案

OSGi 和 Java Beans 之间的主要区别在于类加载器的工作方式。在标准 .jar 文件或 EJB 中,rt.jar 文件或 EJB 等效文件维护类路径。此外,如果您使用容器来部署您的应用程序,您可能有多个导致问题的类路径维护机制。因此,例如,当您创建一个 .war 文件时,您通常会创建一个包含所有 .war 的 .jar 依赖项的 lib 目录。如果您的应用程序中只有一个 war 或 .jar,这还不错。但是想象一个拥有 100 个 EJB 的大型企业部署都包含 apache-commons!您最终有 100 个 apache-commons 实例都在同一个容器中运行,占用大量资源。

在 OSGi 中,您将每个 .jar 文件(我们称它们为包,因为现在是 OSGi)部署到 OSGi 容器中。每个 .jar 文件公开(导出)它希望其他包使用的包,并标识包的版本。此外,每个包还明确说明(导入)它需要从其他包工作的包。然后 OSGi 容器将管理所有这些导出并将它们与适当的导入相匹配。现在,您拥有了可用于每个要使其可用的 EJB 的 apache-commons。您已经取消了/lib 目录,现在您的应用程序占用的资源更少。

在您的问题中,您询问了组件架构和模块化架构之间的区别。模块化是指使每个 bundle 都有自己的部署单元并允许它与其他 bundle 交谈而不是将它们全部打包成一个巨大的 .jar 文件的过程。

关于java - 'component architecture' 和 'modular architecture' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com