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

강성욱님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HTTP 요청 파라미터 - @RequestParam

@Controller와 @RestController 동시 사용

작성

·

1.8K

1

안녕하세요! 강의 잘 듣고 있습니다!

질문1) 영한님께서 @Controller가 붙은 클래스의 메서드에서 return 하는 String 값은 논리적인 view를 찾아서 반환한다고 하셨던 걸로 기억합니다. 제가 시험삼아 @Controller와 @RestController를 동시에 붙이고 테스트해보니(templates에 ok.html을 따로 만들었습니다) ok.html이 아닌 ok라는 body 메시지가 리턴되었는데 우선순위가 있나요?  @Controller와 @RestController 위치를 변경해도 마찬가지였습니다.

질문2)  질문이 좀 이상할 수도 있는데 @Controller와 @RestController를 동시에 붙여도 상관없나요? 서로 충돌나는 게 없을까요?

질문3) @Controller를 사용했을 때 반환할 뷰 파일의 위치는 무조건 resources/templates 에 두어야 하나요? 테스트 해보니 resources/static에 넣으니 불러오지를 못해서용

답변 1

1

안녕하세요, 김말이 님. 공식 서포터즈 codesweaver 입니다.
.
1,2) @RestController의 경우 @Controller + @ResponseBody 와 같습니다. 이를 @Controller와 같이 쓰실 경우 @Controller / @Controller / @ResponseBody 와 같은 의미가 되며 @Controller가 중복 선언된 부분은 무시됩니다. 결국, @RestController를 한번 선언한것과 같은 의미가 됩니다. 순서가 바뀌어도 마찬가지이며 충돌은 발생하지 않습니다.
.

3) 컨트롤러를 통할 경우 resources/templates 의 파일을 찾게 됩니다. 컨트롤러에서 찾을 수 없는 URI 요청은 static에서 우선 찾게됩니다.


감사합니다.

답변해주셔서 감사합니다. 의문이 어느정도 해소되었습니다!!