programing

Spring Bean을 다시 초기화하는 방법은 무엇입니까?

lastcode 2023. 7. 1. 08:46
반응형

Spring Bean을 다시 초기화하는 방법은 무엇입니까?

런타임에 Spring Bean을 다시 초기화할 수 있습니까?

My Bean은 정적 설정을 사용하여 경우에 따라 변경된 다음 Bean을 다시 초기화해야 합니다.

스프링 컨텍스트에서 싱글톤 빈을 업데이트하는 세 가지 옵션이 있으며, 사용 사례에 적합한 옵션을 선택할 수 있습니다.

재로드 방법 인 더 빈
빈에 속성을 업데이트/재로드할 메서드를 만듭니다.트리거에 따라 스프링 컨텍스트에서 빈에 액세스한 다음 재로드 메서드를 호출하여 싱글톤이기 때문에 빈 속성을 업데이트하면 자동 배선/주입되는 모든 스프링 컨텍스트에서도 업데이트됩니다.

빈 삭제 및 등록
사용할 수 있습니다.DefaultSingletonBeanRegistry콩을 제거하고 다시 등록합니다.이에 대한 유일한 단점은 소비자 클래스에서 이미 자동 배선/주입된 빈의 이전 인스턴스를 새로 고치거나 다시 로드하지 않는다는 것입니다.

DefaultSingletonBeanRegistry registry = (DefaultSingletonBeanRegistry) context.getBeanFactory();
registry.destroySingleton({yourbean}) //destroys the bean object
registry.registerSingleton({yourbeanname}, {newbeanobject}) //add to singleton beans cache

@범위 새로 고침
구성 변경에서 빈 값 속성을 새로 고치는 데 유용합니다.하지만 그것은 매우 제한적이고 구체적인 목적을 가지고 있습니다.자세한 내용을 읽을 수 있는 리소스입니다.

언급URL : https://stackoverflow.com/questions/51218086/how-to-reinitialize-a-spring-bean

반응형