blu*_*sky 6 java spring spring-mvc
每次使用查找方法和Spring依赖注入调用bean(myBean)时,我都会尝试注入一个属性:
<bean id="myBean" class="com.myclass"
<property name="default" ref="myDefault" >
<lookup-method name="getUri" bean="defaultUri" />
</property>
</bean>
<bean id="defaultUri" scope="prototype" class="DefaultUri" >
</bean>
class myclass {
public String getUri(){
return "test"
}
}
Run Code Online (Sandbox Code Playgroud)
以上XML在启动时返回此错误:
"来自PortletContext资源的XML文档无效"
错误似乎是因为<lookup-method name="getUri" bean="defaultUri" />配置不正确.
当我试图在上面的XML中实现时,如何在String'属性'中配置Spring查找方法?
Deb*_*kia 12
Lookup方法注入是容器覆盖容器托管bean上的方法的能力,以返回容器中另一个命名bean的查找结果.
现在,假设您希望DefaultUri每次调用一个方法(让它都是createDefaultUri)myclass(它是一个单例bean)时得到一个新的实例(这是一个原型bean).然后你可以定义MyClass如下:
class abstract Myclass {
public String getUri(){
// create a new instance of DefaultUri
DefaultUri defaultUri = createDefaultUri();
return "test"
}
protected abstract DefaultUri createDefaultUri();
}
Run Code Online (Sandbox Code Playgroud)
Spring Framework将生成一个动态子类Myclass,它将覆盖该createDefaultUri方法,以便在DefaultUri每次请求时提供新实例.
您现在可以lookup-method在Myclassbean定义中定义名称,如下所示:
<bean id="defaultUri" scope="prototype" class="DefaultUri">
</bean>
<bean id="myBean" class="com.myclass"
<lookup-method name="createDefaultUri" bean="defaultUri" />
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19476 次 |
| 最近记录: |