스프링 빈 생명 주기 - InitializingBean, DisposableBean 인터페이스, @PostConstruct, @PreDestroy 어노테이션

CODEDRAGON Development/Spring

반응형

 

 

 

스프링 빈 생명 주기

스프링 빈 생명 주기에는 두 가지가 있습니다.

·       InitializingBean, DisposableBean 인터페이스

·       @PostConstruct, @PreDestroy 어노테이션

 


 

 

InitializingBean, DisposableBean 인터페이스 

메소드 설명
@Override


public void afterPropertiesSet() throws Exception {


 


}
·       InitializingBean 구현한 Bean에서 재정의한 메소드
·       Bean 초기화 과정에서 호출되는 메소드
·       load()한 후 refresh()메소드가 호출될 때 bean객체가 생성되어지며 초기화 될때 afterPropertiesSet()메소드가 실행이 됩니다.
@Override


public void destroy() throws Exception {


 


}
·       DisposableBean 구현한 Bean에서 재정의한 메소드
·       Bean 소멸 과정에서 호출되는 메소드
 
 

 

 

destroy() vs close()

메소드 차이
beanObj.destroy() ·       Bean만 소멸하게 할 경우 사용하는 메소드
ctx.close() ·       컨테이너가 소멸되게 됩니다.
·       컨테이너가 소멸 하면, Bean은 자동 소멸 됩니다.

 

 

 

 

@PostConstruct, @PreDestroy 어노테이션

빈이 생성되고 종료될때 실행할 함수에 어노테이션 처리하여 생성 및 소멸과정에서 호출되어 지도록 할 수 있습니다.

 

어노테이션 설명
@PostConstruct


public void initMethod() {


System.out.println("initMethod()");


}
·       빈 초기화 과정에서 호출되는 메소드
·       load()한 후 refresh()메소드가 호출될 때 bean객체가 생성되어지며 초기화 될때@PostConstruct 설정된 메소드가 실행이 됩니다.
 
@PreDestroy


public void destroyMethod() {


System.out.println("destroyMethod()");


}
·       빈 소멸 과정에서 호출되는 메소드