@Configuration , 그리고 싱글톤

스프링 초기화 과정에서 Bean 등록된 객체들을 생성이 되는데,
어쨌든 스프링도 java이기 때문에 호출의 중복으로 중복생성이 될 수 있다?
그러면 싱글톤이 깨지는 것인가?


스프링이 그럴리가 없다. 결국 같은 놈들이다. 

스프링 컨테이너는 싱글톤 레지스트리다. 스프링 빈이 싱글톤이 되도록 보장이 되어야 한다.

그래서 @Configuration이 출동한 것이다.

스프링이 CGLIB 바이트코드 조작 라이브러리 사용, 임의의 다른 클래스 만들고
그 다른 클래스를 스프링 빈으로 등록.

결국 실제로 내가 등록한 빈이 아니고 오버라이드 된 다른놈이 등록 되는 것.
그것은 싱글톤을 보장하도록 한다.



그럼 @Configuration 안붙이면? 주작없이 그냥 중복 생성 싱글톤 깨진다.

'스프링' 카테고리의 다른 글

컴포넌트의 검색 범위  (0) 2021.05.09
@ComponentScan 컴포넌트 스캔  (0) 2021.05.09
싱글톤 주의점  (0) 2021.05.03
스프링 컨테이너(싱글톤)  (0) 2021.05.03
싱글톤 패턴  (0) 2021.05.03
복사했습니다!