728x90
반응형
@Configuration과 싱글톤
memberService 빈을 만드는 코드를 보면 memberRepository() 를 호출한다.
이 메서드를 호출하면 new MemoryMemberRepository() 를 호출한다.
orderService 빈을 만드는 코드도 동일하게 memberRepository() 를 호출한다.
이 메서드를 호출하면 new MemoryMemberRepository() 를 호출한다.
결과적으로 각각 다른 2개의 MemoryMemberRepository 가 생성되면서 싱글톤이 깨지는 것 처럼 보인다.
하지만 테스트를 해보면 MemberRepository 인스턴스는 모두 같은 인스터스가 공유되어 사용된다.
AppConfig 코도를 보면 분명히 각각 2번 new MemoryMemberRepository를 호출해서 다른 인스턴스가 생성되어야 하지만 테스트를 해보면
memberService(), memberRepository(), orderService()는 한번씩만 호출되는 것을 알 수 있다.
인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다.
스프링 핵심 원리 - 기본편 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...
www.inflearn.com
728x90
반응형
'스프링 Spring > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
[컴포넌트 스캔] 컴포넌트 스캔과 의존관계 자동 주입 시작하기 (0) | 2022.02.09 |
---|---|
[싱글톤 컨테이너] @Configuration과 바이트코드 조작의 마법 (0) | 2022.02.08 |
[싱글톤 컨테이너] 싱글톤 방식의 주의점 (0) | 2022.02.06 |
[싱글톤 컨테이너] 싱글톤 컨테이너 (0) | 2022.02.05 |
[싱글톤 컨테이너] 싱글톤 패턴 (0) | 2022.02.05 |
댓글