본문 바로가기
스프링 Spring/스프링 핵심 원리 - 기본편

[빈 스코프] 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결

by 코딩개발 2022. 3. 25.
728x90
반응형

사용할 때 마다 항상 새로운 프로토타입 빈을 생성하려면 프로토타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하면 된다.

 

의존관계를 외부에서 주입(DI) 받는 것이 아닌 직접 필요한 의존관계를 찾는 것을 Dependency Lookup(DL) 의존관계 조회(탐색) 이라 한다.

프로토타입 빈을 컨테이너에서 대신 찾아주는 DL 정도의 기능을 사용하려면 아래 두가지 방법이 있다.

 

ObjectProvider

 

특징

ObjectFactory : 기능이 단순, 별도의 라이브러리 필요 없음, 스프링에 의존

ObjectProvider : ObjectFactory 상속, 옵션, 스트림 처리등 편의 기능이 많고, 별도의 라이브러리 필요 없음, 스프링에 의존

 

 

JSR-330 Provider

 

특징
get() 메서드 하나로 기능이 매우 단순하다.
별도의 라이브러리가 필요하다.
자바 표준이므로 스프링이 아닌 다른 컨테이너에서도 사용할 수 있다.

 

 

정리

프로토타입은 매번 사용할 때 마다 의존관계 주입이 완료된 새로운 객체가 필요할 때 사용하면 된다.

ObjectProvider , JSR330 Provider 등은 프로토타입 뿐만 아니라 DL이 필요한 경우는 언제든지 사용할 수 있다.

 

 


<출처>

인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다.

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

728x90
반응형

댓글