我需要在几个OSGi模块之间使用全局数据值。在OSGi模块中使用单例数据属性持有者的最佳方法是什么?
我应该设计一个"普通"模块,它导出一个包并在这个公共模块包中存储全局单例?
提前致谢
答案 0 :(得分:1)
这有点取决于数据初始化的复杂程度。如果您只想共享某种常量,那么共享模块中的单例是一个不错的选择。
在其他情况下,负载更多。例如,如果从数据库加载数据并且加载可能具有其他依赖项,如DataSource。在这些情况下,最好只共享一个接口和一个服务。然后,这允许隐藏服务用户的依赖关系和初始化工作。