[Spring] @Component와 @Repository, @Service, @Controller

나르·2022년 4월 1일
0

Spring

목록 보기
16/25

@Component 는 Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 annotation입니다.
즉, scan-auto-detection과 dependency injection을 사용하기 위해서 스프링 컨테이너에 등록하는, 가장 기본 어노테이션입니다.

스프링 문서를 확인하면 다음이 명시되어있습니다.

따라서 컴포넌트 클래스들에 포괄적으로@Component를 붙일 수 있지만, @Repository, @Service, @Controller의 역할을 명시적으로 구분해주기 위해 각자 분리해서 사용합니다

AnnotationLayerUseCase
@RepositoryPersistence LayerDB에 접근하는 코드
@ServiceBusiness LayerDB에 접근하는 코드는 repository에 위임
비즈니스 로직과 관련된 모든 코드
@ControllerPresentation Layer클라이언트로 부터 요청이 왔을 때,
dispatcherservlet이 handleradapter를 통해 컨트롤러를 찾기 위해
'컨트롤러' 역할을 한다고 명시

스프링에서도 @Component보다는 @Repository, @Service, @Controller를 권장하고 있습니다.

Ref.

Spring
Spring에서 @Component, @Repository & @Service 주석의 차이점은 무엇입니까?
@Service, @Controller, @Repository 과 @Component의 차이는?
[Spring] @Bean 과 @Component 차이

profile
💻 + ☕ = </>

0개의 댓글