我有使用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/

10-11 04:58