작성
·
200
0
1.클라이언트 A가 HTTP request를 Controller에 요청한다.
Controller은 request scope에 요청하여 빈 인스턴스가 생성된다.
클라이언트가 동일한 HTTP request를 Service에 보내면 기존에 이미 만들어진 A 전용 빈 인스턴스를 사용한다.
클라이언트 B가 HTTP request를 요청하면 마찬가지로 B 전용 빈 인스턴스가 만들어지고 위와 동일한 과정을 거친다.
로 이해하면 될까요?
2.
여기서 message가 하는 기능은 무엇이고, init()과 close() 메소드 내에서 this를 왜 넣어줬는지 궁금합니다.
3.
여기서 provider이 왜 해결방법인지 이해가 안갑니다... provider가 DL기능을 하는 거로 아는데, 어차피 이때도 사용자의 요청을 받은 상태가 아니기 때문에 오류가 발생하는거라고 생각했습니다.
답변 2
0
안녕하세요. 이준승님, 공식 서포터즈 David입니다.
네, 맞습니다.
message는 외부에서 작성된 메시지를 받는 파라미터입니다. 로그를 남길 때, uuid, request url 외 남기고 싶은 메시지를 외부로부터 전달받을 수 있습니다. this의 경우, 현재 어떤 객체가 init, close되는지 식별하기 위함입니다.
ObjectProvider를 사용하면, 요청이 들어오지 않은 애플리케이션 실행시점에는 MyLogger를 만들지 않고 getObject 시점에 MyLogger를 찾고 없으면 생성하는 과정을 거치게 됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문자님이 질문하신 내용은 request 스코프와 관련된 깊이 있는 이해가 필요한 부분으로 보입니다. 스프링에서의 request 스코프 빈의 생성과 사용, 그리고 ObjectProvider가 해결 방법으로 제시되는 이유에 대해 궁금해하시는 것 같네요.
해당 주제에 대한 비슷한 질문과 답변을 찾아봤을 때, 아래의 게시물이 유사한 질문에 대한 답변을 담고 있습니다. 강사님과 다른 수강생의 답변을 참고하시면 많은 도움이 될 것입니다.
request 스코프와 ObjectProvider 이해
request 스코프와 ObjectProvider 이해
스코프와 provider 관계
스코프와 provider 관계
request scope 빈 생성
request scope 빈 생성
질문에 대한 답변 뿐만 아니라, 해당 링크들을 통해 더 자세한 내용을 확인하실 수 있습니다.