每次使用查找方法和Spring依赖注入调用bean(myBean)时,我都会尝试注入一个属性:
以上XML在启动时返回此错误:
“来自PortletContext资源的XML文档无效”
该错误似乎是因为< lookup-method name =“getUri”bean =“defaultUri”/>配置不正确.
最佳答案
Lookup方法注入是容器覆盖容器托管bean上的方法的能力,以返回容器中另一个命名bean的查找结果.
现在,假设您希望每次在myclass(它是一个单独的bean)中调用方法(让它是createDefaultUri)时获取DefaultUri的新实例(这是一个原型bean).然后你可以将MyClass定义为:
class abstract Myclass {
public String getUri(){
// create a new instance of DefaultUri
DefaultUri defaultUri = createDefaultUri();
return "test"
}
protected abstract DefaultUri createDefaultUri();
}
Spring Framework将生成一个Myclass的动态子类,它将覆盖createDefaultUri方法,以便在每次请求时提供DefaultUri的新实例.
您现在可以在Myclass bean定义中定义lookup-method名称,如下所示: