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