spring依赖注入,为一个接口提供多个实现

bpsygsoo  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(376)

因此,这个接口有两个实现。我想用接口的所有实现验证输入,并返回满足条件的实现对象。
接口:

interface SomeInterface {
     boolean someCheck(int n);
}

实施1:

public class SomeClass implements SomeInterface {
   public boolean someCheck(int n) {
      // returns true if n is less than 10
   }
}

实施2:

public class AnotherClass implements SomeInterface {
   public boolean someCheck(int n) {
      // returns true if n is greater than 10
   }
}

我可以在这里使用依赖注入概念吗?

pvabu6sv

pvabu6sv1#

假设两个实现都是SpringBean,您可以在列表中注入这两个实现:

public class Validator {

   @Autowired
   private List<SomeInterface> allImplementations;

   public boolean validate(int n) {
      for(SomeInterface impl : allImplementations) {
          if(!impl.someCheck(n)) {
              return false;
          }
       }
       return true; // all validations passed
   }

}

相关问题