Backend/Spring | Spring Boot
[SpringBoot] @PostConstructd와 @PreDestroy
호_두씨
2024. 2. 22. 15:58
왜 사용하는가?
먼저 스프링 빈의 이벤트 사이클을 알아보자
스프링 빈의 이벤트 사이클
스프링 컨테이너 생성 -> 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백 -> 스프링 종료
초기화 콜백: 빈이 생성되고 빈의 의존 관계 주입이 완료된 후 호출됩니다.
소멸전 콜백: 빈이 소멸되기 직전에 호출됩니다.
-> 스프링 빈 생명주기 콜백 사용 방법 중에 하나가 @PostConstruct 와 @PreDestroy이다.
@PostConstruct
- 객체의 초기화 부분
- 객체가 생성된 후 별도의 초기화 작업을 위해 실행하는 메소드에 적용
- WAS가 띄워질때 bean이 생성된 다음 딱 한번만 실행
@PostConstruct
public void init() {
System.out.println("초기화 메서드 호출")
}
@PreDestroy
- 마지막 소멸 단계
- 스프링 컨테이너에서 객체(빈)을 제거하기 전에 해야할 작업이 있는 메소드에 적용
- close()하기 직전에 실행
@PreDestroy
public void destroy() {
System.out.println("종료 메서드 호출")
}