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

Java 每个组件(.xml)都应该有自己的eclipse项目吗?,java,eclipse-plugin,components,osgi-bundle,kura,Java,Eclipse Plugin,Components,Osgi Bundle,Kura,因此,我正在学习如何使用EclipseKura实现物联网应用程序。我的问题是,每个组件是否都有自己的eclipse项目/包,或者多个组件是否可以在同一个包中(如在我的OSGI-INF中,将包含两个不同类的组件定义) 我在任何地方都找不到这方面的例子。由于我是这方面的初学者,我正在努力理解这些概念,任何提示都将不胜感激。简短回答:这取决于您 详细回答:你可以随心所欲;) OSGi中没有禁止将多个组件(属于声明性服务并用@Component注释的类)放入一个捆绑包的规则。 但是,这有点取决于您如何定

因此,我正在学习如何使用EclipseKura实现物联网应用程序。我的问题是,每个组件是否都有自己的eclipse项目/包,或者多个组件是否可以在同一个包中(如在我的OSGI-INF中,将包含两个不同类的组件定义)


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

简短回答:这取决于您

详细回答:你可以随心所欲;)

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

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

  • 为每个功能创建一个API包,例如定义数据库服务的API、定义登录服务的API或应用程序的任何功能。API包通常只包含接口、抽象类和数据类型
  • 为每个实现创建一个实现捆绑包,该实现包含实现api捆绑包中定义的服务接口的类,并使用api捆绑包中的数据类型与其他捆绑包中的服务通信
  • 每个实现包放置您认为适合服务实现的尽可能多的组件,但尽量不要实现超出您为此包定义的范围边界的功能
或许可以在OSGi途中的示例中找到一个很好的例子:

亲切问候,,
托马斯

非常感谢您的详细解释。虽然自从我问了这个问题后,我已经把大部分都弄明白了,但我相信这对以后的参考资料会很有帮助。谢谢