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 |