gpt4 book ai didi

java - 如何确保在开始返回 bean 之前将资源注入(inject)到我的配置中?

转载 作者:行者123 更新时间:2023-12-01 05:17:13 24 4
gpt4 key购买 nike

我正在尝试定义一个 bean,它是我使用 @Component 注释配置的 bean 列表。我使用的是 spring 3.1。

我的@Configuration类看起来像

@Configuration
public class ReferenceDataConfig {
private ResourceA resourceA;

@Resource
private ResourceB resourceB;

@Resource
private ResourceC resourceC;

@Resource
private ResourceD resourceD;

@Bean (name = "myResourceList")
public List<MyResource> getResourceLst() {
return Arrays.asList(
resourceA
, resourceB
, resourceC
, resourceD
);
}

@Resource (name = "resourceA")
public void setResourceA(ResourceA resourceA) {
this.resourceA = resourceA;
}

我发现 getResourceLst 在任何资源初始化之前被调用。当我添加 setResourceA 方法时,我可以看到它最终被调用,但是当它被调用时已经太晚了。 myResourceList bean 已经创建。

我该如何处理这个问题?

谢谢,彼得

最佳答案

根据您具体想要做什么,解决方案可能比您想象的更简单。

如果List<MyResource>应该包含 MyResource 类型的所有 bean ,那么您不必为列表声明单独的 bean。您可以像注入(inject)任何其他 bean 一样注入(inject)该列表,Spring 将收集 MyResource 类型的所有 bean。它在应用程序上下文中找到并将它们全部注入(inject) List<MyResource>对象。

关于java - 如何确保在开始返回 bean 之前将资源注入(inject)到我的配置中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10974198/

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