작성
·
282
0
request 스코프 예제를 만들고, ObjectProvider로 해결하는 부분을 학습하던 중 헷갈리는 부분이 있어서 질문 드립니다.
일단 저는 이렇게 이해하였습니다.
싱글톤 스코프의 빈은 스프링 애플리케이션 실행 시점에 빈의 생성과 주입이 이루어지고, request 스코프의 빈은 HTTP 요청이 들어와야 빈을 생성한다
LogDemoController와 LogDemoService는 싱글톤 스코프의 빈이고, MyLogger는 request 스코프의 빈이다
싱글톤 스코프와 request 스코프는 서로 빈의 생성과 주입 시기가 달라서 싱글톤 스코프의 빈이 request 스코프의 빈을 참조할 수 없기 때문에 오류가 발생하였다
이 오류를 해결하기 위해서는 DL 서비스를 제공하는 ObjectProvider를 사용해야 한다
ObjectProvider의 getObject() 메서드를 사용하면 request 스코프의 빈을 가져올 수 있다
헷갈리는 부분은 이 부분입니다.
"ObjectProvider 덕분에 getObject() 메서드를 호출하는 시점까지 request 스코프의 빈 생성을 지연할 수 있다"
이 부분을 어떻게 해석해야 할까요?
이 부분 때문에 내용 정리가 잘 안됩니다