스프링으로 프로젝트를 진행하다보면 스프링 컨테이너에 Bean 등록을 위해서
새롭게 클래스를 만든 후에 @Configuration 을 추가해주는 것을 볼 수 있다.
하지만 Bean 등록은 @Bean 을 추가해주는 것 만으로도 가능하다.
그렇다면 어째서 @Configuration 까지 추가해주는 수고를 하는 것 일까?
그 이유는 싱글톤 패턴을 위해서 이다.
스프링에서는 @Bean 설정만으로는 싱글톤을 보장해주지 않는다.
만약 @Configuration 없이 @Bean 만으로 빈 등록을 한다면 아래와 같은 상황이 발생할 수 있다.
만약 @Configuration 이 설정되어 있다면 바이트 조작을 통해서 싱글톤을 보장해주는 프록시 객체를 만들어
스프링 컨테이너에 등록해준다.
잘못된 내용에 대한 수정이나, 본문에 대한 어떠한 피드백도 환영하니 댓글로 남겨주시면 감사하겠습니다. ㅎ
'Server > Info' 카테고리의 다른 글
Custom Advisor 에 @Transactional 설정시 미적용 문제 (0) | 2023.03.20 |
---|---|
[Lombok] @Builder 로 객체 생성시, 초기화 안해준 필드 null 값으로 세팅 (0) | 2022.11.16 |
[Spring] Component Scan 범위 (0) | 2022.07.29 |