在两个 bean 之间注入 spring bean-实现相同的接口

mad*_*uri 3 java oop spring dependency-injection spring-boot

我有两个 spring bean 类,它们实现了相同的接口。

 public interface Abc()
  {
    String getNumber();
  }
Run Code Online (Sandbox Code Playgroud)

这两个类是

 @Service
 public class SomeClass implements abc
  {

  @Override
  public class getNumber()
  {


  }

 }


 @Service
 public class SomeClass1 implements abc
 {

  @Override
  public class getNumber()
  {

  }
  }
Run Code Online (Sandbox Code Playgroud)

在我的服务课上。

 @Service
 public class Demo
  {

  @Autowired
  private Abc abc;

  }

  }
Run Code Online (Sandbox Code Playgroud)

我收到错误消息“需要一个 bean,但找到了 2 个”

对于那个错误,我可以有机会将 @Primary 放在一个 bean 的顶部。

但是我只能根据我将在运行时获得的值(来自数据库)说“一个 bean 配置”。

你能不能给我建议一个方法。

And*_*cus 6

您可以自动装配接口列表,然后选择正确的接口。你可以写:

@Autowired
List<Abc> abcs;
Run Code Online (Sandbox Code Playgroud)

这将产生接口的实现列表。在您的方法主体中,您可以选择正确的方法。