java – 如何在设置新配置后更新所有spring对象?

动态配置更改后,如何刷新以前的@Autowired弹簧对象?

// Here is my updateConfig method

GenericApplicationContext context = new GenericApplicationContext();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
reader.loadBeanDefinitions(new ClassPathResource("applicationContext.xml"));
context.refresh();

myApplicationContextAware.setApplicationContext(context);

使用myApplicationContextAware.applicationContext.getBean(MyClass.class)我可以通过新配置获取新实例,但所有@Autowired对象仍包含旧值

有没有解决弹簧对象的解决方案?

最佳答案 您可以使用
AbstractRefreshableApplicationContext.它提供了在运行时重新加载bean配置的方法.

如果您正在使用弹簧启动,则可以使用0700注释和spring actuator.弹簧执行器端点/刷新重新加载使用@RefreshScope注释的bean.

点赞