티스토리 뷰

TIL - 2022

스프링부트 - 컴포넌트 스캔

바랄 희 2022. 7. 7. 14:45

컴포넌트 Component 란?

Component는 스프링부트에서 작성된 class 를 Bean으로 만드는 것이다.

여기서 Bean은 자바의 객체와 다를 바 없다. 그러나 스프링에서 등록한 객체는 싱글톤으로 관리해준다는 차이점이 존재한다. (요청이 들어올 때마다 객체가 여러개 생성되지 않도록)

또한, @Bean은 메서드 단에서 설정해주지만, @Component는 클래스 단에서 설정해준다.

 

 

컴포넌트 스캔 Component Scan 란?

컴포넌트 스캔은 @Component가 붙은 클래스 전부를 스프링 빈으로 등록한다.

기본적으로 빈의 이름은 클래스명을 사용하며 맨 앞글자만 소문자로 등록된다.

 

Component를 사용하지 않는 경우에는 직접 Bean을 일일히 등록하고, setter 를 이용해서 직접 의존성 주입을 해주었는데 Component를 사용할 때에는 Autowired 를 이용해서 자동으로 의존성을 주입하도록 한다. (강의에서는 설정 정보를 안쓴다고 표현)

생성자에 @Autowired 를 지정하면, 자동으로 스프링부트가 빈의 목록을 조회하고 일치하는 스프링 빈을 찾아서 주입해준다.

기본적으로 타입을 이용하여 조회한다.

 

Component 스캔의 시작 위치를 지정해줄 수 있다.

@ComponentScan{
	basePackages = "hello.core"
}

위와 같이 설정하면 hello.core 하위에 있는 파일들은 전부 스캔한다는 것.

따로 설정하지 않으면 @ComponentScan 이 선언된 파일이 위치한 곳이 basePacakges 로 지정된다.

따라서 관례적으로 설정 정보 클래스의 위치를 최상단에 둔다. 이렇게 될 경우에는 필요한 파일들만 스캔하게 되기 때문이다. 

 

 

'TIL - 2022' 카테고리의 다른 글

스프링부트 - 빈 스코프  (0) 2022.07.10
스프링부트 - 의존관계 주입  (0) 2022.07.07
IOC / DI 컨테이너  (0) 2022.07.05
DIP 원칙 / OCP 원칙  (0) 2022.07.04
[TIL 024] 20220501  (0) 2022.05.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함