[JAVA / Spring Boot] 스프링 빈의 생명주기

chaentopia·2024년 4월 16일
0

NOW SOPT SERVER 과제

목록 보기
11/14

2차 세미나

스프링 빈 이벤트 생명주기

스프링 빈은 스프링 컨테이너 내부에서 생성되고, 스프링이 종료되기 전까지 생명주기를 갖고 있습니다.

  1. 스프링 컨테이너 생성
  2. 스프링 빈 생성
  3. 의존관계 주입
  4. 초기화 콜백
  5. 사용
  6. 소멸 전 콜백
  7. 스프링 종료

빈 생성 페이즈

  • Instantitaion : 스프링은 빈 객체를 초기화합니다.
  • Populating Properites : 객체를 초기화 한 후,스프링은 Aware 인터페이스를 구현한 빈을 스캔하고 관련된 프로퍼티를 세팅합니다.
  • Pre-Initialization : 스프링의 BeanPostProcessors가 이 페이즈에서 활용됩니다. postProcessBeforeInitialization() 메서드들이 그들이 할 일을 합니다. 또한 @PostConstruct가 달린 메서드가 그 후에 바로 실행됩니다.
  • AfterPropertiesSet : 스프링은 InitializingBean 인터페이스를 구현한 빈들의 afterPropertiesSet() 메서드들을 실행합니다.
  • Custom Initialization: 스프링은 @Bean 어노테이션의 initMethod 어트리뷰트에 정의한 초기화 메서드를 트리거합니다.
  • Post-Initialization : 스프링의 BeanPostProcessosr가 다시 작동됩니다. 이 단계에서 postProcessAfterInitialization() 메서드를 트리거합니다.

빈 소멸 페이즈

  • Pre-Destroy : 스프링은 이 단계에서 @PreDestroy 어노테이션이 달린 메서드를 실행합니다.
  • Destroy : 스프링은 DisposableBean 구현체의 destroy() 메서드를 실행합니다.
  • Custom Destruction : @Bean 어노테이션의 destroyMethod 어트리뷰트에 커스텀 destruction 훅을 정의할 수 있습니다. 스프링의 마지막 단계에서 이를 실행하게 됩니다.
profile
the pale blue dot

0개의 댓글