본문 바로가기
스터디/Spring

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

by zoodi 2025. 1. 19.
728x90

목차

  1. 1. 스프링 빈의 생명 주기
  2. 2.@PostConstruct
  3. 3.@PreDestroy
  4. 4. 참고자료

 

 

 

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

댓글