OSGi 中的全局数据持有者

Global Data Holder in OSGi

我需要在几个 OSGi 模块之间使用全局数据值。在 OSGi 模块中使用单例数据 属性 holder 的最佳方式是什么?

要不要设计一个"common"模块,导出一个包,把全局单例存放在这个通用模块包里?

提前致谢

这有点取决于数据初始化的复杂程度。如果您只是想共享某种常量,那么共享模块中的单例是一个不错的选择。

在其他情况下,加载更为复杂。例如,如果您从数据库加载数据并且加载可能具有其他依赖项,如数据源。在这些情况下,最好只共享一个接口和一个服务。这样就可以对服务的用户隐藏依赖关系和初始化工作。