gpt4 book ai didi

java - 从 xml Autowiring @Resource 并使用它们生成 beans 列表

转载 作者:行者123 更新时间:2023-12-01 08:53:30 27 4
gpt4 key购买 nike

让我们假设以下情况。在spring xml配置文件中创建了bean:

<bean id="a" class="com.example.A" />
<bean id="b" class="com.example.B" />
<bean id="c" class="com.example.C" />
<bean id="d" class="com.example.D" >
<property name="myList" ref="myListBean">
</bean>

和Java配置文件:

@Configuration
@ImportResource("path/to/beans.xml")
class JavaConfiguration {
@Resource
A a;

@Resource
B b;

@Resource
D d;

@Resource
C c;

@Bean
List myListBean(){
List l = new ArrayList();
l.add(a);
l.add(b);
l.add(c);
return l;
}
}

由于@Resource D d 在@Resource C c 之前,Bean 'myListBean' 将仅包含{a,b,null}。如果我切换它并且 @Resource C 在 D 之前,那么一切都好。是否有任何好的做法可以避免这种情况,不依赖于字段顺序并防止创建带有空值的 bean 列表?

最佳答案

我认为没有办法完全满足您的要求。

如果两者之间没有依赖关系,你不能保证C会在myListBean之前被Spring注入(inject)。如果您需要 C 来拥有正确的 myListBean,那么应该存在依赖关系。

关于java - 从 xml Autowiring @Resource 并使用它们生成 beans 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42212564/

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