본문 바로가기
스터디/Spring

[Springboot] @PreConstruct와 @PreDestory 의미 사용법

by zoodi 2025. 1. 19.
728x90

목차

     

     

     

    1. 스프링 빈의 생명 주기

    스프링 빈의 생명 주기를 먼저 살펴보면 아래와 같습니다.

    1. 스프링 컨테이너 생성
    2. 스프링 빈 생성
    3. 의존 관계 주입 (DI)
    4. 초기화 콜백 - 빈이 생성되고 빈의 의존성이 주입된 이후 호출된다. 
    5. 애플리케이션 동작 및 데이터 사용
    6. 소멸전 콜백 - 빈이 소멸되기 직전에 호출된다.
    7. 스프링 종료

     

    2.@PostConstruct

    PostConstruct 어노테이션이란 무엇이며 언제 사용할까요?

    • 객체를 초기화 할 때 수행한다.
    • 객체가 생성된 후 별도의 초기화 작업을 위해 실행하는 메소드를 선언하여 사용한다.
    • @PostConstruct 어노테이션을 설정해놓은 init 메소드는 WAS 가 띄워질 때 실행된다.
    @PostConstruct
    public void init() {
    	System.out.println("초기화 메서드 호출")
    }

     

    3.@PreDestroy

    reDestroy 어노테이션은 무엇이며 언제 사용할까요?

    • 마지막으로 소멸하는 단계에서 수행한다.
    • 스프링 컨테이너에서 객체를 제거하기 전에 해야할 작업이 있다면 메소드에 이 어노테이션을 적용한다.
    • WAS 가 내려가기 전에 실행된다. 정확히는 (AbstractApplicationContext) context.close() 수행하기 직전에 실행된다.
    @PreDestroy
    public void destroy() {
    	System.out.println("종료 메서드 호출")
    }

     

     

    두 어노테이션 모두 javax.annotation 패키지를 사용하여 스프링에 종속적인 기술이 아닌 자바 표준입니다.

    스프링에서 권장하는 방법으로 어노테이션만 붙이면된다는 점에서 매우 편리하게 사용가능합니다.

     

     

    4. 참고자료

    https://docs.spring.io/spring-framework/reference/core/beans/annotation-config/postconstruct-and-predestroy-annotations.html

    https://dream-and-develop.tistory.com/458

    https://goddaehee.tistory.com/46

    728x90

    댓글