반응형

빈 라이프사이클 관리

  1. 인터페이스 기반
    InitializingBean 인터페이스 구현한 afterPropertiseSet 메소드
    모든 인스턴스의 콜백을 한번에 지정 가능, 스프링과 결합을 해야함

  2. 빈 생성시 메소드 실행
    init-method
    빈의 메서드 하나를 지정해 초기화 콜백으로 사용하겠다고 스프링에 설정
    빈이 몇개 안되거나 애플리케이션이 스프링과 결합되지 않게 할 때 유용
    인자를 받지 못하는 것이 단점
    init 메소드는 private 으로 사용 권고

  3. 애너테이션 사용
    @PostConstruct
    사용법은 init-method 와 동일하고 @PostConstruct 만 메소드 상단에 추가
    메소드명은 아무이름이나 사용 가능
    init 메소드는 private 으로 사용 권고
    @Bean으로 초기화메소드 사용
    @Bean 애너테이션에 initMethod 추가
    @Bean(initMethod = "init")

소멸시점

  1. bean 태그에 destroy-method 애트리뷰트 추가하고 메소드 이름 기입
    @Bean 을 사용해 메소드 정의
    @Bean(destroyMethod="destroy")

  2. DisposableBean 인터페이스를 구현한 destroy 메소드

  3. @PreDestroy 애너테이션

    BeanNameAware 인터페이스

    라이프사이클 콜백 호출전 setBeanName() 메소드를 호출
    BeanNameAware 인터페이스를 사용해 생성자등에 로그메시지를 넣기 좋음

반응형

+ Recent posts