빈 생명 주기와 콜백

바그다드·2023년 3월 1일
0
post-thumbnail

스프링 빈 이벤트 라이프 사이클

컨테이너 생성 -> 스프링 빈 생성 -> DI -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료

- 기존에는 생성자와 초기화를 따로 구분하지 않았음
- 하지만 단일 책임 원칙을 따르기 위해서는 생성자 역할과 초기화 역할을 구분하는게 바람직 함
- 유지보수 관점에서도 좋음

초기화 콜백

빈 생성, 의존관계 주입 후 호출

소멸전 콜백

빈 소멸 직전에 호출

3가지 빈 생명주기 콜백

1. 인터페이스

2. @Bean

설정 정보에 initMethod="초기화 메서드 이름", destroyMethod="소멸 메서드 이름"을 지정
외부 라이브러리에도 초기화 메서드와 소멸 메서드를 지정할 수 있음
destroyMethod를 지정해주지 않아도 기본값으로 (inferred)(추론)으로 등록되어 있어 close나 shutdown이라는 이름을 가진 메서드를 자동으로 호출해줌


3. 어노테이션 이용

빈으로 등록된 객체에 @PostConstruct(초기화), @PreDestroy(소멸 콜백)사용
- 가장 권장하는 방법
자바 표준 기술로서 스프링이 아닌 다른 컨테이너에서도 동작


profile
꾸준히 하자!

0개의 댓글