728x90
빈 생명주기 콜백 시작
- 스프링 빈의 간단한 라이프 사이클
- 객체 생성
- 의존관계 주입
- 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공
- 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 줌
- 스프링 빈의 이벤트 라이프 사이클
- 스프링 컨테이너 생성
- 스프링 빈 생성
- 의존관계 주입
- 초기화 콜백
- 빈이 생성되고 , 빈의 의존관계 주입이 완료된 후 호출
- 사용
- 소멸전 콜백
- 빈이 소멸
- 스프링 종료
- 객체의 생성과 초기화를 분리하는 것이 좋음
- 각자의 역할에 집중하는 것이 좋음(SRP - 단일 책임 원칙)⇒ 단순 작업의 경우 같이 처리하는 것이 효율 적일 수도 있음
- ⇒ 무거운 작업이 있을 경우
인터페이스 InitializingBean, DisposableBean
- InitializingBean은 afterPropertiesSet() 메서드로 초기화
- DisposableBean은 destroy() 메서드로 소멸
- 초기화, 소멸 단점
- 스프링 전용 인터페이스에 의존
- 초기화, 소멸 메서드의 이름을 변경할 수 없음
- 외부 라이브러리에 적용할 수 없음
- 현재는 거의 사용하지 않음
빈 등록 초기화, 소멸 메서드
- 빈 등록에서 (initMethod = "init", destroyMethod = "close") 를 설정하여 지정
- 특징
- 메서드 이름을 자유롭게 줄 수 있음
- 스프링 빈이 스프링 코드에 의존하지 않음
- 설정 정보이기 때문에 외부 라이브러리에도 적용 가능
- @Bean의 destroyMethod 설정은 기본값이 “(interred)”로 되어져있음 ⇒ 추론 기능
- 추론 기능은 “close”, “shutdown” 이름의 메서드를 자동으로 호출
- 추론기능을 사용하지 않을때 “”(빈값)을 줌
@PostConstruct, @PreDestroy
- 최신 스프링에서 권장하는 방법
- 자바 표준이므로 다른 컨테이너에서도 동작
- 컴포넌트 스캔과 잘 어울림
- 외부 라이브러리에는 사용하지 못함
- ⇒ (initMethod = "init", destroyMethod = "close") 사용
'BackEnd 학습 > Spring Framework' 카테고리의 다른 글
Spring(스프링) - 웹 애플리케이션 이해 (0) | 2023.05.16 |
---|---|
Spring(스프링) -빈 스코프 (0) | 2023.05.01 |
Spring(스프링) - 의존관계 자동 주입 (0) | 2023.03.26 |
Spring(스프링) - 컴포넌트 스캔 (0) | 2023.02.02 |
Spirng(스프링) - 싱글톤 컨테이너 (0) | 2023.01.31 |