注入我有Spring管理的应用程序,并尝试访问注入reources从数组:初始化数组中的字段@Resource
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Collection;
@Service("serviceA")
class A {
@Resource
private HeaderLevelValidator defaultHeaderLevelValidator;
@Resource
private HeaderLevelValidator headerLevelValidator;
/** Validators specific for Storefront. */
private final Collection<HeaderLevelValidator> HEADER_BEAN_NAMES = Arrays.asList(defaultHeaderLevelValidator,
headerLevelValidator);
public Collection<HeaderLevelValidator> getHeaderValidators()
{
return HEADER_BEAN_NAMES;
}
}
我尝试在运行时访问我的名单与getHeaderValidators()但得到列表的空值{null,null}。为什么?定义注入资源列表的正确方法是什么?
在此先感谢!
非常感谢,但这种方法有几个缺点: 1)如果我有几个ctors我需要以某种方式管理它; 2)如果我使用\ @PostConstruct,我将看不到数组的明确定义,并可能忘记在该数组中添加一些新的bean。还有其他建议吗? –
@MichaelZ别忘了。马克的建议是你必须与Spring合作的建议。 –