每个组件(.xml)都有自己的eclipse-project吗?

问题描述 投票:0回答:1

因此,我学习了如何使用eclipse-kura来实现IoT应用程序。我的问题是,每个组件都应该有自己的eclipse-project / bundle还是多个组件可以在同一个包中(如我的OSGI-INF中包含2个不同类的2个组件定义)。

我在任何地方都找不到任何示例。因为我是初学者,并且正在尝试理解这些概念,所以任何提示都将不胜感激。

java eclipse-plugin components osgi-bundle kura
1个回答
0
投票

简短的回答:这取决于您。

长答案:您可以按照自己的喜好来做;)

OSGi中没有规则禁止将多个组件(声明性服务的类,并使用@Component进行注释)放在一个包中。但是,这在某种程度上取决于如何定义捆绑软件的边界,即,您是在x层应用程序中为每个功能创建捆绑软件还是在每个层上创建捆绑软件(例如,一个捆绑软件用于db,一个捆绑软件用于逻辑,一捆用于GUI)。这些示例是完全任意的,但是您可以看到,根据如何定义捆绑包的范围,有时将多个组件放入一个捆绑包中是有道理的,有时没有那么多。

关于我如何建议构建捆绑包:

  • 每个功能创建一个API捆绑包,例如定义数据库服务的API,定义登录服务的API或应用程序的任何功能。 API包通常仅包含接口,抽象类和数据类型。
  • 每个实现都创建一个实现包,其实现类实现api包中定义的服务接口,并使用API​​包中的数据类型与其他包中的服务进行通信。
  • 每个实现捆绑包放置了您认为适合于服务实现的尽可能多的组件,但请尝试不实现超出为此捆绑包定义的范围的范围的功能。

也许可以在OSGi enRoute的示例中找到一个很好的示例:https://enroute.osgi.org/Tutorial/

亲切的问候,托马斯

© www.soinside.com 2019 - 2024. All rights reserved.