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

kwangjin12님의 프로필 이미지
kwangjin12

작성한 질문수

스프링 핵심 원리 - 기본편

다음으로

prototype 스코프 사용 시 proxymode

작성

·

216

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
request 스코프 사용 시 @Scope 에서 proxymode 추가하는 것으로, 코드가 간단해지는 것을 보고, prototype 스코프에도 적용해보려고 했는데, 오류가 발생하였습니다.

질문게시판에서 답변이 되는 글을 찾아서 궁금증은 풀렸는데요, (https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55396&tab=community&category=questionDetail&q=560062)

그렇다면 결론적으로 prototype 스코프에서는 proxymode를 사용할 수는 없고, provider를 사용하는 것이 최선일까요?

 

감사합니다

답변 1

1

질문하신 상황이 싱글톤 타입의 빈에서 프로토 타입의 빈을 주입받아서 사용할 때라고 이해했습니다.
이 경우에는 로직에 따라서 다를 것 같습니다.

첨부해주신 링크의 내용처럼 프록시 모드를 사용하면, 프록시 객체의 메소드를 호출할 때마다 새로운 프로토 타입의 빈이 생성되게 됩니다.
반면 provider를 사용한다면 싱글톤 객체의 메소드를 호출할 때마다 새로운 프로토 타입의 빈이 생성됩니다.

따라서 한 메소드 안에서 동일한 빈이 필요하다면 (강의의 예제처럼 프록시 타입 빈 객체의 addCount를 호출하고 다시 동일한 객체의 getCount 호출로 수를 받아와야 하는 경우) provider를 쓰는게 최선이라고 생각합니다.

반면 싱글톤 객체의 한 메소드 안에서 여러번 프로토 타입 빈의 객체를 생성해야 한다면 프록시 모드가 적절할 수도 있을 것 같습니다. (이런 경우가 잘 상상되지는 않지만요)

김영한님의 프로필 이미지
김영한
지식공유자

덕범님 답변 감사합니다 :)

kwangjin12님 추가 답변이 필요하면 댓글 남겨주세요.

kwangjin12님의 프로필 이미지
kwangjin12

작성한 질문수

질문하기