首页 > 编程语言 > 详细

java手动注入bean到spring容器

时间:2021-06-09 18:06:30      阅读:26      评论:0      收藏:0      [点我收藏+]
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);

 

java手动注入bean到spring容器

原文:https://www.cnblogs.com/bevis-byf/p/14866538.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!