-
(스프링 기본) 14 - 싱글톤 컨테이너개발/Spring 2024. 10. 24. 10:45
스프링 컨테이너는 싱글톤 패턴의 문제점 해결하면서 객체 인스턴스를 싱글톤(1개만 생성)으로 관리한다.
우리가 학습한 스프링 빈이 바로 싱글톤으로 관리되는 빈이다.
■ 싱글톤 컨테이너
- 싱글턴 패턴 적용하지 않아도 객체 인스턴스 싱글톤으로 관리
- 스프링 컨테이너가 그 역할을 하는데, 싱글톤 객체를 생성하고 관리하는 기능을 싱글톤 레지스토리라 한다.
- 지저분한 코드 들어가지 않아도 된다.
- DIP, OCP, 테스트, private 생성자로부터 자유롭다
@Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer() { // AppConfig appConfig = new AppConfig(); ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService1 = ac.getBean("memberService", MemberService.class); MemberService memberService2 = ac.getBean("memberService", MemberService.class); System.out.println("memberService1 = " + memberService1); System.out.println("memberService2 = " + memberService2); assertThat(memberService1).isSameAs(memberService2); }
다음과 같이 싱글톤 컨테이너를 적용하면고객의 요청이 들어올때마다 생성하는게 아니라,
이미 만들어져 있는 객체를 공유해서 효율적으로 사용한다.
※ 기본 빈 등록은 싱글톤 방식이지만, 다른 새로운 객체 만들어 반환하는 기능도 있긴 하다.
그러나 거의 싱글톤으로 만든다.
출처 : 김영한 스프링 핵심 원리 - 기본편
'개발 > Spring' 카테고리의 다른 글
(스프링 기본) 16 - @Configuration과 싱글톤 (바이트코드 조작) (0) 2024.10.24 (스프링 기본) 15 - 싱글톤 방식의 주의점 (공유필드) (0) 2024.10.24 (스프링 기본) 13 - 싱글톤 패턴 (0) 2024.10.23 (스프링 기본) 12 - 웹 애플리케이션과 싱글톤 (0) 2024.10.23 (스프링 기본) 11 - 스프링 빈 설정 메타 정보(BeanDefinition) (2) 2024.10.09