我有使用Java 1.4和Spring 2.5的项目。
它使用一些第三方库,该库提供一些服务。
class XFactory {
Object getService(String name);
}
其中,
name
是服务接口的名称,方法返回实现。我想扩展此类并将结果注册为spring bean:
class YFactory extends XFactory implements ApplicationContextAware {
private ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
Object getService(String name) {
Object service = super.getService(name);
registerBean(applicationContext, name, service);
return service;
}
}
如何实施
registerBean
?我正在谷歌搜索但nth正在工作:将appCtx转换为DefaultListableBeanFactory会导致CCE,我无法将XFactory更改为FactoryBean(第3方)
最佳答案
“将appCtx广播到DefaultListableBeanFactory会导致CCE”
通过appCtx.getAutowireCapableBeanFactory()获取AutowireCapableBeanFactory,然后将其强制转换为BeanDefinitionRegistry。
关于java - Spring 手动添加 bean ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6984200/