接口有多个实现类,通过 @Component 来注册实现类时,@Autowired 注入的时候就可能有多个候选。

解决办法:

  • @Primary 优先考虑,优先考虑被注解的对象注入,优先考虑 Primary
  • @Qualifier 名字声明,声明后对名字进行使用,定义多个名字,注入时指定