컴포넌트 스캔이 어노테이션을 기반으로 등록할 빈을 검색해서 자동 등록해주는 기능
@ComponentScan
@Component
가 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. 이때, 스프링 빈의 기본 이름은 클래스명을 사용한다. (앞글자는 소문자로)
- 빈 이름을 직접 지정하고 싶은 경우,
@Component("대체이름")
@Component
- 스프링 빈을 등록하는 어노테이션으로, 클래스 자체를 스프링 빈에 등록한다.
- @Autowired로 의존성 자동 주입이 가능하다.
@Repository
- 스프링 데이터 접근 계층에서 사용한다.
- 스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외르 스프링 예외로 변환해준다.
@Service
- 스프링 비즈니스 로직에서 사용한다.
- 특별한 처리는 없으나 개발자들이 핵심 비즈니스 로직이 어디 있는지(비즈니스 계층) 인식하는데 도움을 준다.
@Controller
- 해당 클래스를 Controller로 사용할 것이라고 스프링 프레임워크에 알린다. (스프링 빈으로 등록된다.)
- 내부에
@Component
어노테이션이 있어서 컴포넌트 스캔의 대상이 된다. 즉, @Component
의 구체화된 어노테이션이라고 볼 수 있다.
- 필요한 비즈니스 로직을 호출하여 전달할 Model과 이동할 View 정보를 DispatcherServlet에 반환한다.