java - 每个组件(.xml)都应该有自己的 eclipse 项目吗?

标签 java eclipse-plugin components osgi-bundle kura

所以我学习如何使用 eclipse-kura 来实现 IoT 应用程序。我的问题是,每个组件是否应该有自己的 eclipse-project/bundle,或者多个组件是否可以位于同一个包中(如我的 OSGI-INF 中将包含 2 个不同类的 2 个组件定义)。

我在任何地方都找不到任何例子。由于我是这方面的初学者,并且正在尝试理解这些概念,因此任何提示将不胜感激。

最佳答案

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

长答案:你可以随心所欲地做;)

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

关于我建议如何构建 bundle :

  • 为每个功能创建一个 API 包,例如定义数据库服务的 API、定义登录服务的 API 或应用程序应有的任何功能。 API 包通常只包含接口(interface)、抽象类和数据类型。
  • 为每个实现创建一个实现包,其中包含实现 API 包中定义的服务接口(interface)的类,并使用 API 包中的数据类型与其他包中的服务进行通信。
  • 每个实现包可以放置您认为适合服务实现的尽可能多的组件,但尽量不要实现超出您为此包定义的范围边界的功能。

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

亲切的问候, 托马斯

关于java - 每个组件(.xml)都应该有自己的 eclipse 项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58342106/

相关文章:

java - 将 Hibernate 与 Spring 一起使用时,我可以摆脱 persistence.xml 吗?

eclipse - Eclipse 中的 ColdFusion 调试问题(断点未命中)

delphi - Delphi 的最佳自动更新组件

Objective-C 和组件编程

java - 菜鸟问题。我在 ArrayList 中存储了 double 。难以将它们的总数添加到单个 double 变量中。

java - 最小值或最大值为负且小数点尽可能为 0.5 的随机数

java - MediaPlayer播放完毕后执行代码?

eclipse - 在 Eclipse Mars 上安装 Subversion SVN 插件期间计算需求和依赖关系非常慢,为什么?

java - 有状态 Eclipse 插件 - 用于域模型的 OSGi bundle ?

c# - 基于组件的系统中的有效通信