codememo

스프링 Application Context를 닫는 방법

tipmemo 2023. 3. 4. 14:58
반응형

스프링 Application Context를 닫는 방법

신청 완료 후 스프링 콘텍스트를 종료하고 싶습니다.
관련 코드에는ApplicationContext참조했지만 찾을 수 없었습니다.close방법.

메서드를 정의하는 다운캐스트:

((ConfigurableApplicationContext)appCtx).close();

다음과 같이 JVM에 셧다운 훅을 등록해야 합니다.

((AbstractApplicationContext)appCtx).registerShutdownHook();

자세한 내용은 스프링 설명서: 3.6.1.6이외의 애플리케이션에서 스프링 IoC 컨테이너를 정상적으로 종료하는 방법을 참조하십시오.

Java SE 7 이상일 경우 닫지 말고 각 리소스가 문 끝에 닫히도록 리소스 사용 시도를 사용하십시오.

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

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

ApplicationContext context = new ClassPathXmlApplicationContext(beansXML); 

이와 같은 깨끗한 컨텍스트

((ClassPathXmlApplicationContext) context).close();

를 닫는 순서ApplicationContext물건

  1. 타입 캐스트ApplicationContext반대ConfigurableApplicationContext물건.
  2. 가까운 물체를 호출하는 거죠

예:

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

((ConfigurableApplicationContext)context ).close();
public static void main(String[] args) {
    ApplicationContext context=new ClassPathXmlApplicationContext("SpringCnf.xml");
    Resturant rstro1=(Resturant)context.getBean("resturantBean");
    rstro1.setWelcome("hello user");
    rstro1.welcomeNote();
    ((ClassPathXmlApplicationContext) context).close();

이를 위한 보다 간단한 방법은 의 추상적인 구현을 사용하는 것입니다.ApplicationContextinterface.

 AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

context.close();

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

반응형