스프링 핵심 원리 이해6 - 의존관계 주입
빈 생명주기 콜백
스프링 빈의 이벤트 라이프사이클
스프링 컨테이너 생성 → 스프링 빈 생성 의존관계 주입 → 초기화 콜백 사용 → 소멸전 콜백 → 스프링 종료
* 초기화 콜백 : 빈이 생성되고, 의존관계 주입 완료후 호출
Q. 왜 객체의 생성과 초기화가 분리되나요?
A. 생성자는 객체를 생성하는 책임 / 초기화는 값들을 활용해서 외부 커넥션 등을 연결하는 책임
두가지를 명확히 나눠서 진행하는 것이 유지보수의 관점에서 좋습니다. (간단하다면 한번에 해도 OK)
스프링의 빈 생명주기 지원 방식
인터페이스 InitializingBean, DisposableBean
implements를 통해서 넣는 것. 다만, 이 인터페이스는 스프링 초창기에 나온 방식이라 최근엔 자주 사용하지 않는 것이 일반적이다.
설정 정보에 초기화 메서드, 종료 메서드 지정
설정정보에 @Bean(initMethod = "init", destroyMethod = "close")처럼 제공
메서드 이름을 자유롭게 줄 수 있으며, 외부 라이브러리에도 초기화 & 종료 메시지를 줄 수 있다.
추가로, 종료 메서드를 추론할 수 있는 기능도 제공한다.
@PostConstruct, @PreDestory 애노테이션
최신 스프링에서 권장. 애노테이션 하나만 붙이면 돼서 매우 편리!
유일한 단점은 스프링이 아닌 외부에선 못한다는것. 그땐 @Bean에 넣어주자.
'프로그래밍 공부 > Spring' 카테고리의 다른 글
[Spring] JsssionID란? (0) | 2022.02.16 |
---|---|
스프링 스터디 기본편 -7 (0) | 2021.05.02 |
스프링 스터디 기본편 -5 (0) | 2021.04.25 |
스프링 스터디 기본편 - 4 (0) | 2021.04.25 |
스프링 스터디 기본편 -4 (0) | 2021.04.22 |