春天手动添加豆子

时间:2011-08-08 15:06:25

标签: java spring

我有使用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(第三方)

1 个答案:

答案 0 :(得分:1)

'将appCtx转换为DefaultListableBeanFactory会导致CCE' 通过appCtx.getAutowireCapableBeanFactory()获取AutowireCapableBeanFactory,然后将其强制转换为BeanDefinitionRegistry。