인프런 커뮤니티 질문&답변

jung님의 프로필 이미지

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

프로젝트 구조 설명2 - 설정

컨트롤러 부분만 컴포넌트 스캔을 하는 이유

23.10.31 19:30 작성

·

345

0

서비스와 리포지토리는 빈등록을 수동으로 한 이유가 따로 있나요?? 공부차원에서 이렇게 하신건가요??

 

답변 1

0

y2gcoder님의 프로필 이미지

2023. 11. 01. 09:48

안녕하세요. jung님, 공식 서포터즈 y2gcoder입니다.

핸들러로 등록해주기 위해서입니다. @Controller, @Service, @Repository는 내부에 @Component를 가지고 있습니다. @Bean으로 수동 등록하면 @Component로 컴포넌트 스캔할 때와 같이 빈으로 등록된다고 생각할 수 있습니다. @Service는 @Component와 기능적으로 별 차이가 없고, @Repository 는 예외를 추상화해주는 기능이 있기는 하나 본인의 기능을 사용하는 것에는 별 지장이 없습니다.

하지만 @Controller는 스프링 컨트롤러 기능을 이용하기 위해서 꼭 필요합니다. 이게 없으면 스프링 내부에 핸들러로 등록되지 않아서 url로 해당 핸들러 메서드를 호출할 수 없습니다. 이전에는 @RequestMapping을 달아줘도 핸들러로 등록할 수 있었으나, 스프링 부트 3부터는 @Controller를 붙여줘야 핸들러로 등록할 수 있게 바뀌었습니다!

image

 

감사합니다.

jung님의 프로필 이미지

작성한 질문수

질문하기