Spring如何选择@Autowired List的实现

时间:2018-09-25 19:41:35

标签: spring spring-boot

如果我在Spring应用程序中使用以下代码将多个实现相同接口的bean注入到列表中:

@Autowired
List<SomeType> mylist;

我通过反射可以看到mylist的类型为java.util.ArrayList

Spring如何准确选择java.util.List接口的这种实现,以及如何改变这种行为?

1 个答案:

答案 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;