image.png

image.png

image.png

음 위에 잘 정리되어있지만 prototype 빈은 컨테이너가 생성 및 의존관계 주입, 초기화 후 클라이언트에 떤져버리니가 저렇게 싱글톤으로 관리하는 clientBean에 떤져지면 해당 빈의 멤버변수가 되는 느낌이니. 프로토타입 빈의 니즈인 요청 들어올 때마다 새로 만들어서 반환하는 니즈를 만족 못 할수가 있다. → 이럴거면 싱글톤 쓰지~

그리고 프로토타입빈이 싱글톤 빈의 스코프와 같이 유지 된다는 것도 문제이다.

그렇다면 싱글톤 빈과 프로토타입 빈을 함께 사용시 Provider로 문제를 해결하자!

아래의 로직처럼 스프링의 애플리케이션 컨텍스트 전체를 주입받아서 요청때마다 prototypeBean을 ac.getBean으로 찾아서 반환해준다. 근데 굳이 전체 컨텍스트를 주입받아서 찾아야할까? 그냥 그 프로토타입 빈만 찾으면 안될까? → 자연스럽게 프로토타입 빈을 컨테이너에서 대신 찾아주는 DL(Dependency Lookup) 의 기능만 있으면 되지 않을까 라는 생각과 이어진다.

image.png

image.png