简短的回答:这取决于你。长答案:你可以随心所欲地做;)OSGi 中没有规则禁止将多个组件(属于声明性服务并用 @Component 注释的类)放在一个包中。然而,这在一定程度上取决于您如何定义捆绑包的边界,即,您是为每个功能创建一个捆绑包,还是在 x 层应用程序中的每一层创建一个捆绑包(例如,一个捆绑包用于数据库,一个捆绑包用于逻辑和GUI 的一包)。这些示例完全是任意的,但您可以看到,根据您定义捆绑包范围的方式,有时将多个组件放入一个捆绑包中是有意义的,有时则不然。关于我建议如何构建捆绑包:为每个功能创建一个 API 包,例如定义数据库服务的 API、定义登录服务的 API 或应用程序应有的任何功能。API 包通常只包含接口、抽象类和数据类型。为每个实现创建一个实现捆绑包,其中包含实现 api 捆绑包中定义的服务接口的类,并使用 API 捆绑包中的数据类型与其他捆绑包中的服务进行通信。每个实现包可以放置您认为适合服务实现的尽可能多的组件,但尽量不要实现超出您为此包定义的范围边界的功能。