首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“组件架构”和“模块化架构”的区别

“组件架构”和“模块化架构”的区别
EN

Stack Overflow用户
提问于 2011-09-11 14:39:40
回答 1查看 1K关注 0票数 1

OSGi是一个模块化架构,JavaBeans是一个组件架构。有什么不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-14 03:07:24

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

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

在您的问题中,您询问了组件体系结构和模块化体系结构之间的区别。模块化是指这样的过程,即使每个捆绑包都有自己的部署单元,并允许它与其他捆绑包对话,而不是将它们全部打包成一个庞大的.jar文件。

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

https://stackoverflow.com/questions/7376730

复制
相关文章

相似问题

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