我正在尝试使用@Autowire表示法创建我的类对象列表,但我不知道如何判断它的大小。
例如:
#REF!
我发现listMyClassObject总是包含一个对象。此行为与使用下面的内容相同
@Autowire
List<MyClassObject> listMyClassObject;
我的问题是我如何在运行时为这个列表指定一个大小,以便listMyClassObject自动初始化那些很多对象。我试图在spring boot中执行此操作
答案 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声明吗?