Spring自动装配一个具有大小的对象列表

时间:2018-06-05 12:14:42

标签: spring spring-boot

我正在尝试使用@Autowire表示法创建我的类对象列表,但我不知道如何判断它的大小。

例如:

#REF!

我发现listMyClassObject总是包含一个对象。此行为与使用下面的内容相同

@Autowire
List<MyClassObject> listMyClassObject;

我的问题是我如何在运行时为这个列表指定一个大小,以便listMyClassObject自动初始化那些很多对象。我试图在spring boot中执行此操作

2 个答案:

答案 0 :(得分:0)

Spring会在你的第一个例子中注入所有类型MyClassObject的bean

Spring将在第二个示例中注入唯一的<{1}}类型的 bean。如果在您的应用程序上下文中有多个(或没有)该类型的bean,则会失败。

您的应用程序上下文中可能只有一个类型为MyClassObject的bean,这就是为什么两个示例的行为似乎相同。

如果你想要一个MyClassObject 最多 List类型为n的元素,你必须让Spring注入所有这些元素(比如你的第一个)示例)然后以编程方式截断列表,这可能看起来像这样

MyClassObject

答案 1 :(得分:0)

Spring不需要知道将依赖项注入列表的大小。

如@ Thoq的答案所示: Spring autowire a list

@Component
public class Car implements Vehicle {
}

@Component
public class Bus implements Vehicle {
}

@Component
public class User {
   @Autowired
   List<Vehicle> vehicles;//contains car and bus
}

拥有所需类型的多个bean正在使用List注入。

看起来你只有一个这种类型的bean。你能提供你的bean声明吗?