LifeCycle Annotation

IoC의 Life Cycle에서 설명한 바와 같이 Bean의 LifeCycle은 Initializaion ->Activation -> Destruction으로 구성되어 있으며,


LifeCycle 메소드를 정의하는 경우 컨테이너 기동시 또는 종료시 필요한 로직을 수행할 수 있게 된다. Bean을 초기화하고 소멸시 별도 작업이 필요한 경우 기존에는 InitializingBean과 DesposableBean 인터페이스를 상속하거나 Bean 정의시 명시적으로 초기화 메소드와 소멸 메소드 별도 지정할 필요가 있었다. 그러나, 다음가 같은 Annotation을 사용할 경우에는 XML 또는 별도 인터페이스 상속없이 Bean의 LifeCycle 관리가 가능해진다.
  • @PostConstruct

  • JSR-250 표준 Annotation으로 Bean 초기화시 필요한 작업을 담은 메소드에 대해 정의한다. @PostConstruct를 사용하기 위해서는 클래스패스 내에 jsr250-api.jar 파일이 추가되어 있어야 한다.
    @PostConstruct
    // 메소드명은 자유롭게 정의할 수 있다.
    public void initialize() {
      // ...
    }
  • @PreDestroy

  • JSR-250 표준 Annotation으로 Bean 소멸시 필요한 작업을 담은 메소드에 대해 정의한다. @PreDestroy를 사용하기 위해서는 클래스패스 내에 jsr250-api.jar 파일이 추가되어 있어야 한다.
    @PreDestroy
    public void dispose() {
     // ...
    }