본문 바로가기
Spring Boot 개념 정리

빈 스코프 핵심 내용 이해하기

by 반오십 코린이 2023. 2. 19.
728x90
빈 스코프란 무엇인가?

 

'빈이 사용되어지는 범위' 라는 의미.

앱이 구동되는 동안 빈을 한개만 만들어서 쓸지, http 요청마다 생성해서 사용할지를 결정하는 것이다.

스프링 앱이 구동되고 ApplicatiionContext에서 생성되어 하나의 클래스는 하나의 Bean만 가진다.

이를 Singleton이라고 한다.

 

경우에 따라서 http 요청마다 다른 빈을 생성해서 사용할지 - Request

매번 사용할 때마다 새로운 Bean을 생성해서 사용할지 - Prototype

 

다양한 빈 스코프가 존재한다.


Singleton 빈 안에 있는 Prototype 빈은 처음 주입된 채로 그대로 사용됨

 

ProtoType 빈은 사용시 마다 새로운 객체를 만들어서 사용할 용도로 존재하는데

Singleton Bean의 특성에 의해 문제가 발생한다.

 

이를 해결하는 방법은?

 

1. proxy mode를 이용하는 방법

 

2. ObjectProvider을 이용하는 방법

 

728x90