Spring Documentation
Spring 문서를 보면 역할에 맞게 쓰라고 되어 있는데 무엇이 차이인지 정확히 모르겠다. 그래서 조금 더 자료를 찾아봤다.
@Component
Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 annotation이다. 즉, scan-auto-detection과 dependency injection을 사용하기 위해서 사용되는 가장 기본 어노테이션이다.
@Controller
Web MVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다.
@Repository
다 알고 있듯이 data repository를 나타내는 어노테이션이다. @Repository는 플랫폼 특정 exception을 잡아 Spring의 unchecked exception으로 뱉어내준다. ( PersistenceExceptionTranslationPostProcessor )
@Service
비즈니스 로직이나 respository layer 호출하는 함수에 사용된다. 다른 어노테이션과 다르게 @Component에 추가된 기능은 없다. 하지만 나중에 Spring 측에서 추가적인 exception handling을 해줄 수도 있으니 비즈니스 로직에는 해당 어노테이션을 사용하자.
'Back-End > Spring' 카테고리의 다른 글
스프링 프록시 패턴 - Proxy Pattern (0) | 2019.05.02 |
---|---|
PSA에 관하여 (0) | 2019.05.02 |
Spring DataIntegrityViolationException 에러 (0) | 2019.04.03 |
Lombok 사용하기 (0) | 2019.03.15 |
스프링 5에서 Reactive Programming 하기 (1) (0) | 2018.11.26 |