我有使用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
?
我正在使用Google搜索但是nth正在工作:将appCtx转换为DefaultListableBeanFactory会导致CCE,我无法将XFactory更改为FactoryBean(第三方)
答案 0 :(得分:1)
'将appCtx转换为DefaultListableBeanFactory会导致CCE' 通过appCtx.getAutowireCapableBeanFactory()获取AutowireCapableBeanFactory,然后将其强制转换为BeanDefinitionRegistry。