【问题标题】:Declarative Services Strategy Pattern声明式服务策略模式
【发布时间】:2018-10-23 09:47:18
【问题描述】:

我是 OSGI 和声明式服务的新手,我正在尝试实施一项策略,但我无法让组件满意和/或激活

我的 BillConfig 有 useMocks(),当它为 true 时,工厂应该返回的 Repo 是 BillRepositoryInMemory,否则应该是 BillRepositoryREST。如何在我的 BillDAO 中访问此存储库的抽象?

谢谢

【问题讨论】:

    标签: osgi strategy-pattern declarative-services


    【解决方案1】:

    您的 Factory 设置对于 OSGi 的使用看起来不是最佳的。 相反,我建议将存储库 impls 创建为具有所需配置策略的 DS 组件。

    这样你就可以通过提供一个配置来激活你想要的 repo impl 组件。

    然后您可以在 BillDAO 中使用:

    @Reference
    BillRepository repo;
    

    这种方法完全避免了工厂模式,并使您的组件更加松散耦合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多