@Component 및 추가 스테레오 타입 주석
@Repository annotation은 저장소 (데이터 액세스 개체 또는 DAO라고도 함)의 역할 또는 stereotype을 충족하는 모든 클래스의 표식입니다.
이 표식의 사용 중에는 예외 변환에 설명 된 예외 자동번역(automatic translation)이 있습니다.
Spring은 @Component, @Service 및 @Controller와 같은 스테레오 타입 주석을 추가로 제공합니다.
@Component는 모든 Spring 관리 구성 요소의 일반 스테레오 타입입니다.
@Repository, @Service 및 @Controller는 예를 들어 지속성 레이어, 서비스 레이어 및 프리젠 테이션 레이어와 같이 보다 구체적인 사용 사례를 위해 @Component를 전문화 한 것입니다.
따라서 @Component를 사용하여 구성 요소 클래스에 주석을 달 수 있지만 @Repository, @Service 또는 @Controller로 주석을 달면 클래스를 도구로 처리하거나 애스펙트와 연결하는 데 더 적합합니다.
예를 들어, 이러한 스테레오 타입 주석은 pointcuts에 이상적인 타겟을 만듭니다.
@Repository, @Service, @Controller가 스프링 프레임 워크의 향후 릴리스에서 추가적인 의미를 전달할 수도 있습니다.
따라서 서비스 계층에 @Component 또는 @Service를 사용하도록 선택하는 경우 @Service가 분명히 더 나은 선택입니다.
마찬가지로 위에서 설명한 것처럼 @Repository는 이미 지속성계층(persistence layer)에서 자동 예외 변환의 표식으로 지원됩니다.