인프런 커뮤니티 질문&답변

이찬원님의 프로필 이미지
이찬원

작성한 질문수

스프링 핵심 원리 - 기본편

프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결

ClienBean에 PrototypeBean 객체 생성에 관해 궁금한 것이 있습니다.

해결된 질문

작성

·

406

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
강의를 듣다가 의문점이 생겨서 질문 드립니다.

ClientBean에 이미 로직을 실행해서 prototypeBean을 생성하고 나중에 로직을 한번 더 실행할때
Provider에서 prototypeBean으로 불러오는 것과
Logic() 메서드에서 getBean()으로 prototypeBean 불러오는것
둘다 ClientBean에 있는 기존의 prototypeBean을 스프링에서 새로운 prototypeBean을 생성해서 기존꺼를 덮어쓴다고 이해하면 맞을까요??

제가 나름대로 테스트해본결과 로직을 실행 시킬때마다 ClientBean이 가지고 있던 prototypeBean의 객체 주소값이 달라져서 제가 이해 한 내용이 맞는지 궁금합니다.

답변 1

1

안녕하세요. 이찬원님, 공식 서포터즈 David입니다.

네, 맞습니다.

자동 의존관계 주입으로 인해 프토로타입 빈이 생성되어 주입되는 것과 logic() 내에서 Provider에 의해 프로토타입 빈이 생성되는 것은 서로 다른 객체입니다.

감사합니다.

이찬원님의 프로필 이미지
이찬원

작성한 질문수

질문하기