인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김민지님의 프로필 이미지
김민지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 테스트

static변수

작성

·

168

1

memberRepository라는 인터페이스가 있고 이를 구현하는 MemoryMemberRepository가 있어요
구현체인 MemoryMemberRepository에 선언된 static변수는 memberRepository를 상속받는 모든 class들의 공유자원인건가요?

그러니까 예를들어 memberRepository를 구현하는 Member2Repository가 있다고 한다면 여기서도

1. memorymemberRepository에 선언된 static변수가 공유되나요?

 

2. 그리고 MemberServiceTest의 176번째줄... 즉, MemoryMemberRepository mr = new MemoryMemberRepository(); 
이부분이요 여기서도 new로 생성되어있고 memberservice에서도 new로 생성되어있지만 static변수이기때문에 new MemoryMemberRepository로 생성한 변수에 대해서는 자원이 공유되는게 맞죠?! 

답변 1

0

안녕하세요. 김민지님, 공식 서포터즈 David입니다.

1. static field는 해당 구현체 타입에서만 공유됩니다.

동일한 인터페이스를 구현한 다른 구현체 타입에서는 공유되지 않습니다.

2. 네, 맞습니다.

감사합니다.

김민지님의 프로필 이미지
김민지

작성한 질문수

질문하기