-
@Configuration과 싱글톤spring/스프링 핵심 원리 강의 내용 정리 2023. 12. 8. 18:06
@Configuration에 비밀에 대해 하나씩 파헤쳐 보자
AppConfig을 다시 살펴보자
memberService 를 호출하면, new MemoryMemberRepository 객체가 생성된다
또 orderService 를 호출하면, new MemoryMemberRepository 객체가 생성된다
결국 두개의 객체를 생성했으니, 이는 싱글톤이 깨진것이 아닐까?
스프링 컨테이너는 이 문제를 어떻게 해결할까?
직접 테스트 해보자놀랍게도 memberService의 memberRepository 와 orderService의 memberRepository 는 같은 객체라는걸 알 수 있다
또한 직접 memberRepository 를 출력한 것도 똑같은 객체이다
AppConfig 에서 직접 메서드가 호출 될 때 마다 출력 문구가 나오도록 확인해 보자
메서드가 딱 한번씩만 호출이 된 것을 볼 수 있다
굉장히 반복해서 확인을 해 봤는데, 자바코드로는 설명이 안되는 이 현상에 대해 알아보도록 하자
'spring > 스프링 핵심 원리 강의 내용 정리' 카테고리의 다른 글
컴포넌트 스캔과 의존관계 자동 주입 시작하기 (1) 2023.12.08 @Configuration과 바이트코드 조작의 마법 (1) 2023.12.08 싱글톤 방식의 주의점 (0) 2023.12.08 싱글톤 컨테이너 (0) 2023.12.08 싱글톤 패턴 (1) 2023.12.08