작성
·
216
0
안녕하세요!
항상 좋은 답변 주셔서 감사합니다.
@Controller 통합 과정에서 궁금한 것이 있어서 굴을 적었습니다! 아래 질문이 맞는지 하나하나 봐주시면 너무 감사하겠습니다!
1.
@Controller를 붙인 클래스가 있다면, @Controller안에는 @Component가 있어서, @Component Scan을 통해서 @Controller 클래스가 자동으로 스프링 빈 컨테이너에 스프링 빈으로 등록되는게 맞을까요?
2. Controller 통합을 위해서 컨트롤러 1개에 여러개의 메서드에 각각 @RequestMapping을 통해서 여러 핸들러를 등록하는 것으로 알려주셨습니다. 이것이 정확히 의미하는 바가 어떤 것일지 알려주실 수 있을까요? 제가 추정하는 바는 다음과 같습니다.
@Controller가 붙는 것은 실제로 1개 이기 때문에 그 컨트롤러 내에 몇 개의 RequestMapping이 붙어있건 상관없이 스프링 빈은 1개만 등록된다. 그리고 각 ReqeustMapping은 스프링 빈의 특정 메서드와 연결된다.
HandlerMapping 보관소에 있는 것은 @Controller가 붙은 빈이 아닌, Static Method를 참조하는 방식과 유사하게 작성된다.
이렇게 이해하는 것이 맞을까요? 항상 좋은 답변 주셔서 감사합니다.
답변 1
0
안녕하세요, ... 님. 공식 서포터즈 codesweaver 입니다.
.
1. 네 맞습니다. @Controller 애노테이션은 @Component를 포함하고 있습니다.
2. 빈에 등록되는 것은 @Controller 애노테이션은 붙은 클래스만 등록되는것이 맞습니다.
@RequestMapping 을 통해 매칭된 URL을 찾는 내용은 아래의 링크에 자세한 코드 추적이
있어 링크를 남깁니다.
https://velog.io/@hsw0194/Spring-MVC-HandlerMapping%EC%9D%98-%EB%8F%99%EC%9E%91%EB%B0%A9%EC%8B%9D-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1%ED%8E%B8
.
감사합니다.