zoukankan      html  css  js  c++  java
  • java手动注入bean到spring容器

    ApplicationContext applicationContext = SpringContextUtils.getApplicationContext();
    
    //将applicationContext转换为ConfigurableApplicationContext
    
    ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) applicationContext;
    
    // 获取bean工厂并转换为DefaultListableBeanFactory
    
    DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) configurableApplicationContext.getBeanFactory();
    
    this.defaultListableBeanFactory = defaultListableBeanFactory;
    
    String[] beanNamesForType = defaultListableBeanFactory.getBeanNamesForType(PayClient.class);
    
    System.out.println("beanNamesForType:" + Arrays.toString(beanNamesForType));
    
    // defaultListableBeanFactory.removeBeanDefinition("com.xxx.feign.PayClient");
    
    defaultListableBeanFactory.removeBeanDefinition(beanNamesForType[0]);
    
    // 通过BeanDefinitionBuilder创建bean定义
    
    BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(PayClient.class);
    
    // 设置属性userService,此属性引用已经定义的bean:userService,这里userService已经被spring容器管理了.
    
    // beanDefinitionBuilder.addPropertyReference("payClient", "payClient");
    
    // 注册bean
    
    defaultListableBeanFactory.registerBeanDefinition("com.xxx.feign.PayClient", beanDefinitionBuilder.getRawBeanDefinition());
    
    Object bean = SpringContextUtils.getBean(PayClient.class);
  • 相关阅读:
    iType.js仿输入文字效果
    css上下左右居中
    js的几种继承方式
    jquery ajax跨越
    js构造函数+原型
    less基础引用
    vw单位相关
    移动端适配(rem单位定义方法)
    第二周 day2 python学习笔记
    第一周 day1 Python学习笔记
  • 原文地址:https://www.cnblogs.com/bevis-byf/p/14866538.html
Copyright © 2011-2022 走看看