@ComponentScan를 이해하고 @Component과 @Configuration의 차이를 알아보겠습니다.
@ComponentScan이란?
- @Component 어노테이션이 붙은 클래스를 스캔해서 스프링 Bean으로 등록합니다.
- 이때, @Servcie ,@Repository, @Controller 그리고 @Configuration은 @Component 어노테이션이 기본적으로 설정되어 있습니다.
@ComponentScan의 스캔 기본 대상은?
1.@Component :
- 컴포넌트 스캔에서 사용합니다.
2.@Controller :
- Spring의 4계층 구조에서 Presentation Layer(tier)를 담당하며, 주로 사용자의 요청을 받아 Service Layer에 처리를 위임하고
이에 대한 처리 결과를 View를 통해 반환하는 역할을 합니다.
3.@Service :
- Spring의 4계층 구조에서 Application Layer(응용 계층)을 담당하며, 주로 서비스의 비지니스 로직을
정의하는 layer 역할을 담당합니다.
4.@Repository :
- Spring의 4계층 구조에서 Infrastructure Layer(인프라 계층)을 담당하며, 주로 외부와의 통신 (DB,메세징 시스템)을 담당합니다.
5.@Configuration
- 스프링 설정 정보에서 사용하거나 bean 등록을 위해 사용합니다.
@Component란?
- Component란 구성요소라는 뜻으로 컴포넌트는 독릭접인 단위 모듈입니다.
- 스프링 부트에선 IoC 컨테이너에 등록된 클래스를 의미합니다.
- 스프링 부트에서는 @Component이 붙은 클래스를 빈으로 등록합니다.
@Configuration이란?
- @Configuration이라고 하면 설정파일인 (config)를 만들기 위한 애노테이션으로 사용되거나 Bean으로 등록하기 위해 사용됩니다.
- 즉, @Configuration 어노테이션을 사용하면 설정파일로 등록하거나 bean으로 등록하기 위함을 알 수 있습니다.
공부를 하다보니 헷갈리는 부분이 있어 정리했습니다.
출처:
https://park-algorithm.tistory.com/entry/Component란
https://youwjune.tistory.com/40
https://castleone.tistory.com/2https://castleone.tistory.com/2
'CS > 자바 스프링' 카테고리의 다른 글
@RequestBody VS @RequestPart VS @RequestParam의 개념을 알아보자 (0) | 2024.04.26 |
---|---|
[Java Spring] 스프링으로 Thread Pool 원리 이해하기 ( 다중 유저 요청 처리 등) (0) | 2024.04.05 |
MVC 패턴의 @Controller , @Service 그리고 @Repository과 이를 활용한 동작 과정 이해하기 (0) | 2024.02.26 |
MVC 패턴이란 무엇인가 (1) | 2024.02.23 |