스터디-Spring

[스프링 핵심 원리 - 기본편] 컴포넌트 스캔과 자동 의존관계 설정

일태우 2022. 1. 3. 22:15

스프링 빈을 등록하는 2가지 방법

1. 컴포넌트 스캔과 자동 의존관계 설정

2. 자바 코드로 직접 스프링 빈 등록하기

 

컴포넌트 스캔과 자동 의존관계 설정

1. @Component애노테이션이 있으면 스프링 빈으로 자동 등록된다.

2. @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다.

3. @Component를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다.

- @Controller, @Service, @Repository

4. @ComponentScan 애노테이션이 붙은 클래스 기준으로 스캔을 하는데 동일패키지를 포함한 하위 패키지를 스캔하며, 상위패키지나 다른 패키지는 스캔하지 못한다(설정에 따라 달라짐)

 

※ 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다(유일하게 하나만 등록해서 공유한다) 따라서 같은 스프링 빈이면 모두 같은 인스턴스이다. 설정으로 싱글톤이 아니게 설정할 수 있지만, 특별한 경우를 제외하면 대부분 싱글톤을 사용한다.