gpt4 book ai didi

java - OSGI bundle 结构以及与 CQ5 中其他 bundle 的通信

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

根据我的理解,在使用 CQ5 进行开发时,服务层将位于 OSGI 包上。这是否意味着我将创建的每个服务类都相当于一个 OSGI bundle ?例如,如果我的 CQ5 应用程序有 3 个服务,即:登录服务、用户管理服务、注册服务,这是否意味着还将部署 3 个 OSGI 包?这些 bundle 如何相互通信?

最佳答案

不是真的。 bundle 更像是模块。因此,您可以根据服务的功能或者您想在其他项目中重用它们将服务拆分为多个 bundle 。例如,您可以有下一个结构:

  • projectname-core:在那里你可以拥有服务,这些服务也可以被其他项目使用。就像一些外部服务的内容提要生成器一样,登录服务(如果它在其他项目中也有用的话:
  • projectname-ui-beans:在那里你可以有bean,你将把它们注入(inject)到你的jsp页面上;
  • projectname-services:一般服务,特定于该项目,例如搜索或注册;
  • projectname-taglib:在那里你有自己的jsp标签实现;
  • projectname-it-test:与集成测试捆绑在一起;
  • projectname-some-specific-stuff:可能有一些服务不依赖于任何其他 bundle ,例如一次性内容操作;

引用this有关基本结构的主题和用于创建它的 Maven 原型(prototype)。

Upd1: bundle 之间的通信可以通过两种方式完成:

  • 您可以将其中一个 bundle 作为另一个 bundle 的依赖项。然后,您可以使用 @Reference 从其他 bundle 获取服务
  • 您还可以使用事件进行通信,请参阅this了解详情。

关于java - OSGI bundle 结构以及与 CQ5 中其他 bundle 的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493028/

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