작성
·
174
답변 1
2
안녕하세요. wel come님
ObjectProvider는 프로토타입을 생성해주는 것이 아니라, 빈을 찾아오는 역할을 합니다.
따라서 해당 시점에 applicationContext.getBean("myLogger")을 해서 빈을 찾아옵니다.
만약 찾은 빈이 싱글톤 스코프라면 기존에 싱글톤으로 생성되어 있는 빈을 반환해주십니다.
그런데 myLogger가 request 스코프 이기 때문에 request 스코프에 빈이 없으면 새로 생성하고, 이미 있으면 있는 빈을 반환해줍니다.
감사합니다.
아하! ObjectProvider는 getObject();시에 프로토타입빈을 계속해서 생성을 하는것이 아니라 없으면 생성해서 가져오고 있으면 있는것을 가져오는 것이었군요!
이제서야 왜 LogDemoController 와LogDemoService에 각각 myLoggerProvider.getObject() 해주었는데도
uuid가 동일한 값으로 생성되는지 이해가 되었어요!