작성
·
351
0
서비스와 리포지토리는 빈등록을 수동으로 한 이유가 따로 있나요?? 공부차원에서 이렇게 하신건가요??
답변 1
0
안녕하세요. jung님, 공식 서포터즈 y2gcoder입니다.
핸들러로 등록해주기 위해서입니다. @Controller, @Service, @Repository는 내부에 @Component를 가지고 있습니다. @Bean으로 수동 등록하면 @Component로 컴포넌트 스캔할 때와 같이 빈으로 등록된다고 생각할 수 있습니다. @Service는 @Component와 기능적으로 별 차이가 없고, @Repository 는 예외를 추상화해주는 기능이 있기는 하나 본인의 기능을 사용하는 것에는 별 지장이 없습니다.
하지만 @Controller는 스프링 컨트롤러 기능을 이용하기 위해서 꼭 필요합니다. 이게 없으면 스프링 내부에 핸들러로 등록되지 않아서 url로 해당 핸들러 메서드를 호출할 수 없습니다. 이전에는 @RequestMapping을 달아줘도 핸들러로 등록할 수 있었으나, 스프링 부트 3부터는 @Controller를 붙여줘야 핸들러로 등록할 수 있게 바뀌었습니다!
감사합니다.