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

KAIROS님의 프로필 이미지
KAIROS

작성한 질문수

스프링 핵심 원리 - 기본편

싱글톤 방식의 주의점

TestConfig에 static이 붙는 이유

해결된 질문

작성

·

605

1

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

[질문 내용]
다른 질문에 달려있는 답변을 봐도 잘 이해가 가지 않아서 질문드립니다.

https://www.inflearn.com/questions/257297/testconfig-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%97%90%EC%84%9C-static%EC%9D%84-%EB%96%BC%EB%B2%84%EB%A6%AC%EB%A9%B4 위의 링크 답변을 참고해도 이해가 잘 가지 않아 질문 드립니다.

스크린샷 2023-03-19 오후 11.14.56.png

static이 아닌 innerclass는 outerclass 인스턴스를 생성해서 접근이 가능하다고 합니다.

반면 static innerclass의 경우 outreclass이름.innerclass로 outerclass 인스턴스를 생성하지 않고 접근할 수 있다고합니다.

AnnotationConfigApplicationContext(TestConfig.class);

의 경우 TestConfig.class을 받아서 빈을 등록하는 걸로 알고있는데 static innerclass가 아닌 일반 innerclass로 넣을 경우 안되는 이유가 외부참조가 필요하기 때문인건가요?

그러면 static innerclass 인스턴스를 생성할때 outerclass이름.innerclass() 형태로 생성해야 할텐데 이 경우는 문제가 안되는 건가요?

답변 1

1

안녕하세요, KAIROS 님! 공식 서포터즈 codesweaver 입니다.

이렇게 생각하면 될 것 같습니다. static 은 어플리케이션 어디에서나 바로 접근할 수 있습니다.

반면 inner class 는 아무나 접근할 수 없습니다. 반드시 outer class 를 통해 접근해야 합니다.

그래서 AnnotationConfigApplicationContext(TestConfig.class); 이 부분에서 TestConfig.class 를 참조할 수 없습니다 :)

감사합니다.

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

감사합니다

KAIROS님의 프로필 이미지
KAIROS

작성한 질문수

질문하기