我是OSGI和Declarative Services的新手,我正在尝试实施一项策略,但是我无法使组件满意和/或处于活动状态
我的BillConfig具有useMocks(),如果为true,则应由工厂返回的Repo是BillRepositoryInMemory,否则应为BillRepositoryREST。我如何在BillDAO中访问此回购协议的摘要?
谢谢
答案 0 :(得分:1)
您使用Factory进行的设置对于OSGi的使用而言并不是最佳的。 相反,我建议使用必需的配置策略将存储库impls创建为DS组件。
通过这种方式,您可以通过为其提供配置来激活所需的repo impl组件。
然后在BillDAO中可以使用:
@Reference
BillRepository repo;
这种方法完全避免了Factory模式,并使组件之间的耦合更加松散。