[SPRING] Bean 생명주기 콜백 (PostConstruct / PreDestory)

2022. 3. 2. 21:43·SPRING
728x90

Bean 생명주기 콜백

  • 스프링 빈이 생성된 후 의존관계 주입이 완료되거나 죽기 직전에 스프링 빈안에 있는 메서드를 호출해주는 기능
  • 스프링은 3가지 방법으로 빈 생명주기 콜백을 지원함
  • 인터페이스 (InitializingBean, DisposableBean), 설정정보 초기화 메서드 종료 메서드 지정, 어노테이션 사용 (PostConstruct, PreDestroy)

Bean의 이벤트 라이프사이클

컨테이너 생성 -> 빈생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료

스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공하며 또한 컨테이너가 종료되기 직전에 소멸 콜백을 줌, 해당 과정을 통하여 안전하게 종료작업을 진행하게 됨

  • 초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출
  • 소멸전 콜백 : 빈이 소멸되기 직전에 호출 

PostConstruct / PreDestory

  • 스프링에서 권장하는 기법 (생명주기 콜백기법 사용시 권장)
  • javax.annotation 패키지라서 스프링에 종속적인 기술이 아니라 JSR-250 자바 표준 기술
  • 컴포넌트 스캔과 잘어울림

PostConstruct

  • 빈의 초기화 부분에 해당, 빈이 생성된 후 별도의 초기화 작업을 위해 실행하는 메소드를 선언
  • PostConstruct 어노테이션을 설정해놓은 init 메소드는 WAS가 띄워질때 실행됨

PreDestory

  • 마지막 소멸단계, 스프링 컨테이너에서 빈을 제거하기 전에 해야할 작업이 있다면 메소드위에 사용하는 어노테이션
  • close() 하기전에 실행 

PostConstruct / PreDestory 예시

@PostConstruct
public void init() {
	System.out.println("초기화")
}

@PreDestroy
public void destroy() {
	System.out.println("종료")
}
저작자표시

'SPRING' 카테고리의 다른 글

[SPRING] WEBFLUX 리액티브 오퍼레이션 정리  (0) 2022.05.08
[SPRING] JPA 쿼리메소드 요약  (0) 2022.04.19
[SPRING] Transaction Propagation  (0) 2021.09.22
[SPRING] AOP  (0) 2021.07.31
[SPRING] Interceptor  (0) 2021.07.11
'SPRING' 카테고리의 다른 글
  • [SPRING] WEBFLUX 리액티브 오퍼레이션 정리
  • [SPRING] JPA 쿼리메소드 요약
  • [SPRING] Transaction Propagation
  • [SPRING] AOP
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    Kafka
    ElasticSearch
    Elk
    Spring
    docker
    자바
    IntelliJ
    이펙티브 코틀린
    코틀린
    JPA
    엘라스틱서치
    cleancode
    AWS
    SQL
    이펙티브코틀린
    go
    클린코드
    프로그래머스
    splunk
    java
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[SPRING] Bean 생명주기 콜백 (PostConstruct / PreDestory)
상단으로

티스토리툴바