[Spring] request scope bean과 provider에 대한 나름의 이해

2023. 11. 2. 13:49Spring

request scope bean은 request가 들어와서 나갈때까지 유지된다.

이를 UUID를 통해서 확인해 볼 수 있다.

UUID는 세계에서 딱 하나 존재하는 유니크한 ID이다.

UUID는 이 빈을 통해 출력된 곳에서 모두 동일했다.

 

그런데 controller에서 빈을 생성자 주입을 통해 받을 때 이 빈은 없다.

왜냐하면 controller 생성 시점에는 요청이 들어오지 않았기 때문이다. 따라서 오류가 난다.

이를 해결하기 위해서 Provier나 ObjectProvider를 이용한다.

주입을 받는 것은 request scope bean이 아니라 이 빈을 룩업하는 provider이다.

그리고 요청이 들어오는 로직에서 빈을 조회하면 객체가 생성된다. 이때는 요청이 들어왔기 때문에 오류가 발생하지 않는다.

 

이 문제를 provider보다 더 쉽게 해결할 수 있다고 한다.

 

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=55393

 

학습 페이지

 

www.inflearn.com