如果我在Spring应用程序中使用以下代码将多个实现相同接口的bean注入到列表中:
@Autowired
List<SomeType> mylist;
我通过反射可以看到mylist
的类型为java.util.ArrayList
。
Spring如何准确选择java.util.List
接口的这种实现,以及如何改变这种行为?
答案 0 :(得分:1)
按bean名。
例如,假设您要配置两个相同类型的bean:
@Bean
public List<SomeType> listA(){
// Init and return listA here
}
@Bean
public List<SomeType> listB(){
// Init and return listB here
}
以及当您以此方式使用@Autowired
时:
@Autowired(value = "listA") List<SomeType> listA;
您会看到它将自动连接到listA
,而以下内容将自动连接到listB
:
@Autowired(value = "listB") List<SomeType> listB;