Vin*_*nie 6 java spring casting javabeans
有没有办法将Spring bean自动转换为应用程序上下文XML中定义的类?我想避免在两个位置放置关于bean的类型信息....在xml配置文件中以及在代码中作为强制转换.
例如,给定此配置文件
<bean id="bean-name" class="SimpleSpringBean" scope="prototype">
<property name="myValue" value="simple value"></property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我可以这样调用ApplicationContext.getBean("bean-name")以避免直接将返回类型转换为SimpleStringBean.我知道我也可以打电话ApplicationContext.getBean("bean-name", SimpleSpringBean.class)来避免演员本身,但我仍然有2个地方的类型信息.
看起来Spring可以获取类info(ApplicationContext.getType)或者从bean本身获取类型,但没有办法在没有程序员干预的情况下自动转换类型.
Lio*_*orH 11
我同意Sii,你应该避免尽可能多地调用getBean.只需将bean连接到依赖于它们的类.
但是,如果您有一个包含应用程序上下文的类,则可以提供如下所示的包装器通用方法:
class MyContextHolder{
ApplicationContext appContext;
......
@SuppressWarnings("unchecked")
public static <T> T getBean(String beanName)
{
return (T)appContext.getBean(beanName);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以不用强制转换来调用它
MyClass mc = MyContextHolder.getBean("myClassBean");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14391 次 |
| 最近记录: |