빈이 존재할 수 있는 범위

기본적으로 빈은 싱글톤으로 생성된다. → 스프링 컨테이너의 시작과 종료까지 유지되는 스코프

프로토타임 : 컨테이너가 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프. → 종료시점 호출 X. @Scope(”prototype”) 으로 함.

→ 연결이랑 초기화까지만 해주고 클라이언트에 던져~

싱글톤은 컨테이너가 빈을 하나 만들어놓고 공유하는 느낌이라면,

프로토타입은 아래 그림처럼… 애초에 각각 생성하고 생성과 의존관계 주입까지만 컨테이너가 신경써주고 그다음 클라이언트에게 떤져버림.

image.png

image.png

짤린 글자는 책임은 프로토타입 빈을 받은 클라이언트에 있다. 그래서 @PreDestroy 같은 매서드가 호출되지 않는다.