我正在尝试定义一个 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/