@Repository 어노테이션은 DAO로 알려진 저장소의 역할 또는 stereotype을 수행하는 클래스를 위한 표시이다. 이 표시를 사용할 때에는 예외들의 번역이 자동적으로 이루어진다. 이는 '예외 번역'에 설명되어 있다.
스프링은 더 많은 stereotype 어노테이션들을 제공한다. @Component, @Service, @Controller와 같은 것들이다. @Component는 스프링의 관리를 받는 컴포넌트를 포괄하는 stereotype이다. @Repository, @Service, @Controller는 각각 퍼시스턴스 계층, 서비스 계층, 프레젠테이션 계층에 특정된 사용을 위해 @Component를 특화한 것들이다. 그러므로 컴포넌트 클래스들에 @Component를 붙일 수 있다. 하지만, @Repository, @Service, @Controller를 대신 붙임으로써 클래스들은 개발도구의 처리와 aspect와의 결합에 더 적합해진다. 예를 들어, 이 stereotype 어노테이션들은 포인트컷을 위한 이상적인 대상들을 만들어낸다. @Repository, @Service, @Controller는 추후에 배포될 스프링 프레임워크를 위해 추가적인 의미를 갖고있기도 하다. 그래서 만약 여러분이 서비스 계층에 @Component와 @Service 중 하나를 골라야 한다면 @Service가 분명 더 나은 선택이 될 것이다. 이미 언급했듯이, 이와 비슷하게 @Repository는 이미 퍼시스턴스 계층의 자동적인 예외 번역을 위한 표시로서 지원되고 있다.
'SpringFramework Core - I. IoC 컨테이너 > 10. 클래스패스 스캐닝과 관리받는 컴포넌트들' 카테고리의 다른 글
10.5. 컴포넌트 안에서 bean 메타데이터 정의하기 (0) | 2020.04.14 |
---|---|
10.4. 스캐닝을 커스터마이즈하기 위해 필터 사용하기 (0) | 2020.04.14 |
10.3. 자동적으로 클래스를 찾아 bean 정의로 등록시키기 (0) | 2020.04.14 |
10.2. 메타 어노테이션과 구성 어노테이션 사용하기 (0) | 2020.04.14 |
10. 클래스패스 스캐닝과 관리받는 컴포넌트들 (0) | 2020.04.14 |