티스토리 뷰

spring

Spring Component Scan

구삼칠오 2021. 10. 5. 23:41

Spring Container를 이용하기 위해선 Bean객체와 의존성을 관리하기 위한 구성정보가 필요합니다. 이러한 구성정보를 제공하기 위해 @Container를 이용해 구성정보 클래스를 정의하죠. 객체생성과 주입에 대한 역할을 분리 할 수 있으니 너무나 좋은 방법입니다. 하지만 관리해야 하는 객체가 많아진다면 이 또한 문제가 될 수 있습니다.

 

Spring은 @ComponentScan 이라는 어노테이션을 제공합니다. ComponentScan은 구성정보 없이도 자동으로 빈들을 등록하고 관리하는 기능입니다. ComponentScan은 @Component 어노테이션이 붙어있는 객체들을 빈으로 등록합니다. @Service, @Repository, @Controller는 모두 이미 @Component 어노테이션이 붙어 있어 따로 @Component을 붙일 필요는 없습니다.

 

@ComponetScan엔 몇가지 옵션들이 제공됩니다.

 

  • excludeFilters : scan 대상에서 제외할 component
  • includeFilters : scan 대상에 포함시킬 component
  • basePackages : scan 범위 설정. 지정된 패키지와 그 하위 패키지를 모두 scan한다. (default : 본인의 패키지)
  • ...

 

하지만 신기하게도 SpringBoot를 사용하면 @ComponentScan 구성정보 없이도 Component들이 알아서 빈객체로 등록이 되고 관리됩니다. 어떻게 된걸까요? 그 비밀은 @SpringBootApplication에 있습니다.

 @SpringBootApplication에 @ComponentScan이 있는 것을 볼 수 있습니다.

 

 

ref.

docs.spring.io

김영한 - 스프링 핵심 원리 (기본편)

https://dahye-jeong.gitbook.io/spring/spring/2021-05-05-component-scan

https://oingdaddy.tistory.com/254

'spring' 카테고리의 다른 글

Spring IoC Container  (0) 2021.09.30
SOLID와 Spring - 2  (0) 2021.09.25
SOLID와 Spring - 1  (0) 2021.09.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함