Spring Boot 공부 일기 <5> - Bean Lifecycle

이동휘·2024년 8월 12일

Spring Boot

목록 보기
5/21

1. IDE

Intellij

2. 오늘 공부 내용

Bean Lifecycle

  • Bean Lifecycle : 빈(Bean)이 Spring 컨테이너에 의해 생성되고 소멸될 때까지의 일련의 과정

주요 단계와 관련 메서드

  1. 빈의 생성

    • Spring 컨테이너는 @Component, @Service, @Repository, @Bean 등으로 정의된 빈을 스캔하여 인스턴스를 생성
  2. 의존성 주입

    • 생성된 빈의 필드에 의존성을 주입, 빈이 사용할 다른 빈들이 설정됨
  3. 빈의 초기화(Initalization)

    • 초기화 과정에서 여러 방식 사용
      • InitializingBean 인터페이스: afterPropertiesSet() 메서드를 구현하여 초기화 로직을 정의할 수 있습니다.
      • @PostConstruct 애너테이션: 빈의 초기화 직후 호출할 메서드에 붙여 초기화 작업을 수행할 수 있습니다.
      • init-method 속성: XML 설정 파일에서 사용하며, 초기화 메서드를 지정합니다.
  4. 빈 사용

    • 초기화가 완료된 빈은 애플리케이션의 비즈니스 로직을 처리하는 데 사용
  5. 빈의 소멸(destruction)

    • 소멸 과정에서는 다음과 같은 방식이 사용
      • DisposableBean 인터페이스: destroy() 메서드를 구현하여 빈 소멸 시 로직을 정의할 수 있습니다.
      • @PreDestroy 애너테이션: 빈 소멸 직전에 호출할 메서드에 붙여 정리 작업을 수행할 수 있습니다.
      • destroy-method 속성: XML 설정 파일에서 사용하며, 소멸 시 실행할 메서드를 지정합니다.

Bean Lifecycle 메서드 요약

  • @PostConstruct:
    • 빈의 의존성 주입이 완료된 후 실행됩니다.
    • 초기화 로직을 간단하게 추가할 때 유용합니다.
  • InitializingBean.afterPropertiesSet():
    • 의존성 주입이 완료된 후 Spring에 의해 호출됩니다.
    • 초기화 로직을 실행할 수 있습니다.
  • @PreDestroy:
    • 빈이 소멸되기 직전에 호출됩니다.
    • 리소스를 정리하거나, 연결을 닫는 작업 등을 수행할 수 있습니다.
  • DisposableBean.destroy():
    • 컨테이너에 의해 빈이 소멸될 때 호출됩니다.
    • 리소스를 정리하는 등의 소멸 로직을 실행할 수 있습니다.
  • init-method / destroy-method:
    • XML 설정에서 초기화와 소멸 메서드를 지정할 수 있습니다.
    • @Bean 애너테이션 사용 시 initMethoddestroyMethod 속성으로 지정 가능합니다.

정리

  • 초기화: @PostConstruct, InitializingBean.afterPropertiesSet(), init-method를 사용해 빈이 생성되고, 의존성이 주입된 후 실행할 로직을 정의합니다.

  • 소멸: @PreDestroy, DisposableBean.destroy(), destroy-method를 사용해 빈이 소멸되기 직전에 실행할 로직을 정의합니다.

  • 빈 라이프사이클 메서드를 사용하여 빈이 생성되고 소멸되는 과정에서 특정 작업을 수행할 수 있으며, 이를 통해 리소스를 적절하게 관리할 수 있습니다.

0개의 댓글