【问题标题】:Spring dependency injection for an interface implementation接口实现的Spring依赖注入
【发布时间】:2020-07-15 15:05:39
【问题描述】:

我想获得一个接口的所有实现。 here 给出的答案之一建议使用 Spring DI。它简单且有效。

  1. 我的问题是,如何根据某种顺序检索实现。
  2. 如果可以实现上述目标,它将在多模块应用程序中表现如何。

请找到示例应用 here 。有一个库模块,它定义了一个接口并有 2 个实现。在依赖于库的应用程序模块中,也有相同接口的附加实现。在示例中,库类只检查给定字符串的类型(空、回文或文本)。显然,如果不维护顺序,该函数可能会返回无效结果。以上问题的答案将帮助我解决这个问题。

【问题讨论】:

    标签: java spring dependency-injection shared-libraries


    【解决方案1】:

    首先:你不需要反思。自动装配就足够了:

    @Autowired
    private List<MyInterface> interfaces;
    

    第二个:列表是有序的,但所有实现都具有相同的默认顺序。 为了解决这个问题,您可以将注释 @Order 放在您的类上或实现 Ordered 接口。

    @Order(1)
    @Service
    public class MyImpl implements MyInterface {}
    

    您可以找到本教程对其进行更多解释: https://www.baeldung.com/spring-order

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 2011-12-05
      • 2014-08-08
      • 2015-10-18
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      相关资源
      最近更新 更多