public class RegisterBean {
private static final Logger LOGGER = LoggerFactory.getLogger(RegisterBean.class);
@Autowired
private ApplicationContext applicationContext;
public void dynamicRegister(String beanName) {
ConfigurableApplicationContext context = (ConfigurableApplicationContext) applicationContext;
DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory();
BeanDefinitionBuilder beanDef = BeanDefinitionBuilder.rootBeanDefinition(String.class);
// 调用相应构造方法
beanDef.addConstructorArgValue("str");
beanFactory.registerBeanDefinition(beanName, beanDef.getBeanDefinition());
}
}
动态注入bean到spring
最新推荐文章于 2024-08-05 07:43:36 发布
本文介绍了一种在Spring框架中动态注册Bean的方法。通过获取应用上下文并转换为ConfigurableApplicationContext类型,进而得到DefaultListableBeanFactory实例,使用BeanDefinitionBuilder创建Bean定义,并最终注册到工厂中。示例代码展示了如何注册一个String类型的Bean。
摘要由CSDN通过智能技术生成