Spring: 限定同名的不同类型
Spring: Qualifying different types with the same name
我有两个 类,我想使用 spring
自动装配
@Component
public class Restaurant {
@Autowired
@Qualifier("HighClass")
private CoffeeMaker coffeeMaker;
}
和:
public class CappuccinoMaker implements CoffeeMaker{
@Autowired
@Qualifier("HighClass")
int numOfSpoons;
}
然后注入:
@Bean(name="HighClass")
@Scope("prototype")
public CoffeeMaker HighClassCoffeeMakerGenerator() {
return new CappuccinoMaker();
}
@Bean(name="HighClass")
public int getNumOfSpoons() {
return 3;
}
我想用 "HighClass" 来限定 int 和 CoffeeMaker。在 Guice 中,可以使用相同的注释来注释不同的类型并正确地注入它们。
这似乎在 spring 中是不允许的。当我尝试注入字段时,出现错误,提示未找到所需的 bean。我错过了什么吗?
我有两个 类,我想使用 spring
自动装配@Component
public class Restaurant {
@Autowired
@Qualifier("HighClass")
private CoffeeMaker coffeeMaker;
}
和:
public class CappuccinoMaker implements CoffeeMaker{
@Autowired
@Qualifier("HighClass")
int numOfSpoons;
}
然后注入:
@Bean(name="HighClass")
@Scope("prototype")
public CoffeeMaker HighClassCoffeeMakerGenerator() {
return new CappuccinoMaker();
}
@Bean(name="HighClass")
public int getNumOfSpoons() {
return 3;
}
我想用 "HighClass" 来限定 int 和 CoffeeMaker。在 Guice 中,可以使用相同的注释来注释不同的类型并正确地注入它们。
这似乎在 spring 中是不允许的。当我尝试注入字段时,出现错误,提示未找到所需的 bean。我错过了什么吗?