[Spring] 싱글톤 빈과 프로토타입 빈을 함께 사용할 때 생기는 문제점에 대한 나름의 이해

2023. 11. 2. 11:20Spring

프로토타입 빈의 장점은 데이터를 클라이언트별로 갱신해야할 때이다. 

싱글톤은 이게 안된다. 모든 클라이언트가 공유하기 때문이다.

 

하지만 이를 의도하고 싱글톤 빈에 프로토타입 빈을 넣으면 문제가 생긴다.

우리의 의도는 각 클라이언트마다 새로운 프로토타입 빈을 얻는 것이다.

하지만 싱글톤 빈이 생성되고 프로토타입 빈이 의존관계로 주입되면 클라이언트마다 결과적으로 더 이상 프로토타입 빈이 만들어지지 않는다. 왜냐하면 프로토타입 빈은 요청할때 생기는 것이다. 싱글톤 빈이 요청할때는 의존관계를 주입받을 때인데 이건 딱 한번만 일어나는 것이다. 즉, 하나의 요청이기 때문에 하나의 프로토타입 빈만 만들어지게 되는 것이다. 

 

그렇다면 어떻게 하면 우리의 원래 의도인 클라이언트마다 새로운 프로토타입이 만들어져 싱글톤 빈이 사용하게 할 수 있을까?

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55490

 

학습 페이지

 

www.inflearn.com