복붙노트

[SPRING] 새 구성을 설정 한 후 모든 스프링 개체를 어떻게 업데이트 할 수 있습니까?

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 객체에는 이전 값이 여전히 포함되어 있습니다.

스프링 객체를 리프레시하는 솔루션이 있습니까?

해결법

  1. ==============================

    1.이것을 위해 AbstractRefreshableApplicationContext를 사용할 수 있습니다. 런타임시 Bean 구성을 다시로드하는 메소드를 제공합니다.

    이것을 위해 AbstractRefreshableApplicationContext를 사용할 수 있습니다. 런타임시 Bean 구성을 다시로드하는 메소드를 제공합니다.

    스프링 부트를 사용하는 경우 @RefreshScope 주석을 스프링 액추에이터와 함께 사용할 수 있습니다. 스프링 작동기 끝점 / 새로 고침은 @RefreshScope로 주석 된 콩을 다시로드합니다.

  2. from https://stackoverflow.com/questions/36501508/how-can-i-update-all-spring-objects-after-setting-new-configuration by cc-by-sa and MIT license