-
[스프링/Spring] @Component, @Controller, @Service, @Repository 차이Spring 2021. 8. 5. 10:52
기본적으로 @Controller, @Service, @Repository 어노테이션들은 내부적으로 @Component가 선언되어 있다.
즉, @Controller, @Service, @Repository 어노테이션들은 @Component보다 더 세부적인 관점이라 볼 수 있다.
@Component
- 스프링에서 관리되는 빈(Bean) 객체임을 나타내고 DI를 위한 가장 기본적인 어노테이션이다.
@Controller
- Web MVC에 사용되는 어노테이션이다. (해당 클래스를 MVC 모듈의 컨트롤러로 인식하게 해준다.)
- @RequestMapping, @GetMapping과 같은 URI 요청 어노테이션은 @Controller가 붙은 클래스에서만 동작한다.
@Service
- @Component와 다른 기능은 없지만 비즈니스 로직에 해당 어노테이션을 사용하여 명시적으로 비즈니스 로직을 가지고 있는 클래스임을 나타내게 해준다.
@Repository
- 해당 클래스를 데이터 접근 계층으로 인식하며, 데이터 계층의 예외를 추상화하여 스프링 예외로 변환하여 던져준다.
'Spring' 카테고리의 다른 글
[스프링/Spring] 스프링 싱글톤 멀티스레드 환경에서의 주의사항 (0) 2021.08.06 [스프링/Spring] @Bean, @Component 차이 + @Configuration (0) 2021.08.03 [스프링/Spring] Spring Boot Thymeleaf 문법 ! (0) 2021.03.21