IT TIP

Spring ApplicationContext를 닫는 방법은 무엇입니까?

itqueen 2020. 10. 15. 22:07
반응형

Spring ApplicationContext를 닫는 방법은 무엇입니까?


내 응용 프로그램이 완료되면 스프링 컨텍스트를 닫고 싶습니다.
관련 코드에 ApplicationContext참조가 있지만 close방법을 찾을 수 없습니다 .


당신의 다운 캐스트 ApplicationContextConfigurableApplicationContext있는 정의 close()방법 :

((ConfigurableApplicationContext)appCtx).close();

아래와 같이 JVM에 종료 후크를 등록해야합니다.

((AbstractApplicationContext)appCtx).registerShutdownHook();

자세한 내용은 다음을 참조하십시오. Spring Manual : 3.6.1.6 웹이 아닌 애플리케이션에서 Spring IoC 컨테이너를 정상적으로 종료


아래와 같이 컨텍스트를 초기화하면

ApplicationContext context = new ClassPathXmlApplicationContext(beansXML); 

이와 같은 깨끗한 컨텍스트

((ClassPathXmlApplicationContext) context).close();

Java SE 7 이상인 경우 닫지 말고 try-with-resources를 사용하여 각 리소스가 명령문 끝에서 닫히도록합니다.

try(final AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"classpath*:META-INF/spring/*.xml" }))
{
     //write your code
}

ApplicationContext개체 를 닫는 단계

  1. Cast the ApplicationContextObject to ConfigurableApplicationContextobject를 입력 합니다.
  2. 그런 다음 닫기 객체를 호출하십시오.

예:

 ApplicationContext context = new ClassPathXmlApplicationContext("mybeans.xml");

((ConfigurableApplicationContext)context ).close();

참고 URL : https://stackoverflow.com/questions/14423980/how-to-close-a-spring-applicationcontext

반응형