gpt4 book ai didi

java - Spring中bean的初始化顺序

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:34 29 4
gpt4 key购买 nike

我的 Spring 配置文件中有以下 bean:

<bean id="myList" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="elem1"/>
<ref bean="elem2"/>
<ref bean="elem3"/>
<ref bean="elem4"/>
</list>
</constructor-arg>
</bean>
<bean id="elem4" class="myClass">
<property name="title" value="random4"/>
</bean>
<bean id="elem1" class="myClass">
<property name="title" value="random1"/>
</bean>
<bean id="elem3" class="myClass">
<property name="title" value="random3"/>
</bean>
<bean id="elem2" class="myClass">
<property name="title" value="random2"/>
</bean>

我注意到在我的应用程序中,myList 中的元素按以下顺序排列:elem4、elem1、elem3、elem2。我期望我的列表中的元素将按照我在声明 ref bean(elem1、elem2、elem3、elem4)时设置的顺序排列。Spring初始化bean有顺序吗?有没有一种方法可以指定列表中元素的顺序?

最佳答案

Spring 确实遵守您在列表中给出的顺序。列表中的元素将完全是您指定的 [elem1,elem2,elem3,elem4]。否则,你做错了什么,你能显示打印不同顺序的代码吗?

然而,bean 初始化的顺序可能不同并且取决于 bean 依赖性,因此,例如,如果您有两个 bean

<bean id="holder" class="my.HolderBean" lazy-init="false">
<property name="inner" ref="inner"/>
</bean>
<bean id="inner" class="my.InnerBean" lazy-init="false"/>

那么无论xml定义顺序如何,InnerBean都会先被初始化,然后在HolderBean初始化时注入(inject)到HolderBean中。

关于java - Spring中bean的初始化顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121204/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com