복붙노트

[SPRING] bean으로부터 Spring shutdown을 강제하는 가장 좋은 방법은?

SPRING

bean으로부터 Spring shutdown을 강제하는 가장 좋은 방법은?

내 응용 프로그램은 Spring DefaultMessageListenerContainer를 사용하여 들어오는 메시지를 처리합니다. 앱의 기본 메소드는 이미 종료 후크를 등록합니다.

질문이 있습니다 : 응용 프로그램 컨텍스트를 강제 종료하는 가장 좋은 방법은 무엇입니까?

메시지 리스너에 RuntimeException을 던지면 컨테이너에 의해 처리되고 전달되지 않습니다. System.exit을 사용할 수 있습니까? ApplicationContext를 종료해야하는 모든 클래스에 전달하므로 close ()를 호출 할 수 있습니까?

해결법

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

    1.응용 프로그램 컨텍스트를 ConfigurableApplicationContext로 캐스팅하고 해당 컨텍스트에서 close ()를 호출 할 수 있습니다. 최소한 서블릿 컨텍스트가 파괴되는 경우 웹 애플리케이션 환경에서 컨텍스트가 종료 될 때 발생합니다.

    응용 프로그램 컨텍스트를 ConfigurableApplicationContext로 캐스팅하고 해당 컨텍스트에서 close ()를 호출 할 수 있습니다. 최소한 서블릿 컨텍스트가 파괴되는 경우 웹 애플리케이션 환경에서 컨텍스트가 종료 될 때 발생합니다.

    ApplicationContext에 대한 정보를 얻으려면, bean은 ApplicationContextAware

    또 다른 옵션은 응용 프로그램 컨텍스트를 삽입 (또는 @Autowired로 autowire)하는 것입니다.

    @Inject
    private ApplicationContext ctx;
    
  2. from https://stackoverflow.com/questions/2401372/best-way-to-force-spring-shutdown-from-a-bean by cc-by-sa and MIT license