2015년 12월 10일 목요일

스프링 빈 생명 주기 - InitializingBean, DisposableBean

스프링 빈 생명 주기

스프링 빈 생명주기를 사용하고 알아보기 위해서는 클래스에서 다음과 같은 설정을 해야한다.

implements InitializingBean, DisposableBean

InitializingBean 인터페이스를 참조할 경우 afterPropertiesSet() 메소드를 구현함으로써 빈 초기화 과정에서 사용 직전 처리에 대한 작업을 수행할 수 있다.

DisposableBean 인터페이스를 참조할 경우 destroy() 메소드를 구현함으로써 빈 소멸 과정에서 소멸 전 처리에 대한 작업을 수행할 수 있다.

두 인터페이스는 각각 사용 가능하며, 필요한 인터페이스만을 참조하여 사용하면 된다.

스프링 컨테이너 설정 중 ctx.refresh(); 를 수행하게 되면 '빈 초기화 과정에서afterPropertiesSet() 함수가 호출된다.

이후 스프링 컨테이너를 종료하기 위하여 ctx.close(); 를 수행하게 되면 destroy() 함수가 호출된다.


  1. Object object;  
  2. String resource = "classpath:appContext.xml";  
  3. GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();   
  4. // 스프링 컨테이너 생성  
  5. ctx.load(resource); // 스프링 컨테이너 설정  
  6. ctx.refresh(); // 스프링 컨테이너 설정  
  7.   
  8. object = ctx.getBean("beanID", Object.class); // 스프링 컨테이너 사용  
  9. /* do something */  
  10.   
  11. ctx.close(); // 스프링 컨테이너 종료  

  1. @Override  
  2. public void afterPropertiesSet() throws Exception {  
  3.     /* 빈 초기화 과정에서 호출  */  
  4. }  
  5. @Override  
  6. public void destroy() throws Exception {  
  7.     /* 빈 소멸 과정에서 호출 */  
  8. }  


댓글 없음:

댓글 쓰기