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

lsvk3577님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

싱글톤 stateless 관련 질문입니다.

해결된 질문

작성

·

302

0

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

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

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

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
 
싱글톤 컨테이너 강의를 듣고 궁금한점이 생겨서 질문드립니다!!
 
첫번째 사진의 private final MemberRepository memberRepository
의 변수 memberRepository가 싱글톤 관련해서 문제가 발생하지 않을까?
 
특히 생성자 관련부분 MemberServiceImpl 에서
this.memberRepository=memberRepository 에서 문제가 생기지 않을까 하고 생각했었어요
그래서 테스트코드(getMemberRepository())를 작성해서 값을 찍어보니 문제가 없더라고요
 
그래서 AppConfig.class 의 @Configuration 때문에
memberRepository()가 한번만 실행되니깐 그런거겠지 ? 하고
@Configuration을 지우고 다시하면 memberRepository의 참조값이 다르겠지 하고
실행했는데 참조값이 같더라고요....
 
왜 값이 같게 되는 건가요??.... 알려주시면 정말 감사하겠습니다
 
 
설명이 지저분해서 죄송합니다.. 아는게 많이 없어서 ㅠㅠㅠ 답변미리 정말 감사합니다ㅠㅠ
 
 

답변 1

1

lsvk3577님의 프로필 이미지
lsvk3577
질문자

ApplicationContext ac2=new AnnotationConfigApplicationContext(AppConfig.class);

MemberServiceImpl m1=ac2.getBean("memberService",MemberServiceImpl.class);
MemberServiceImpl m2=ac2.getBean("memberService",MemberServiceImpl.class);
System.out.println(m1.getMemberRepository());
System.out.println(m2.getMemberRepository());

테스트 코드를 위와같이 작성해서 그런거였네요.. . 해결됐습니당!!
lsvk3577님의 프로필 이미지

작성한 질문수

질문하기