Spring MVC Basics
Spring MVC, MVC 아키텍처, DispatcherServlet, @Controller, ViewResolver, Model-View-Controller 패턴
1Java 클래스를 Spring MVC 컨트롤러로 변환하는 어노테이션은 무엇입니까?
Java 클래스를 Spring MVC 컨트롤러로 변환하는 어노테이션은 무엇입니까?
답변
@Controller는 클래스를 HTTP 요청을 처리하는 Spring MVC 컨트롤러로 표시합니다. 이는 @Component의 특수화이며 component scanning이 컨트롤러를 자동으로 감지할 수 있게 합니다. @RestController는 REST API를 위해 @Controller와 @ResponseBody를 결합하는 반면, @RequestMapping은 URL 매핑을 정의하지만 그 자체로 컨트롤러를 선언하지는 않습니다.
2@Controller와 @RestController의 주요 차이점은 무엇입니까?
@Controller와 @RestController의 주요 차이점은 무엇입니까?
답변
@RestController는 @Controller와 @ResponseBody를 결합하여 모든 메서드가 뷰 이름 대신 직렬화된 데이터(JSON/XML)를 자동으로 반환함을 의미합니다. @Controller에서는 데이터를 반환하려면 각 메서드에 @ResponseBody를 추가해야 합니다. @RestController는 REST API용으로 설계되었으며, @Controller는 뷰 렌더링이 있는 전통적인 웹 애플리케이션에 사용됩니다.
3컨트롤러 메서드를 /users URL의 HTTP POST 요청에 매핑하려면 어떻게 합니까?
컨트롤러 메서드를 /users URL의 HTTP POST 요청에 매핑하려면 어떻게 합니까?
답변
@PostMapping은 특정 URL의 POST 요청에 메서드를 매핑하기 위한 특수 어노테이션입니다. 이는 @RequestMapping(method = RequestMethod.POST)의 단축형입니다. 다른 특수 어노테이션으로는 @GetMapping, @PutMapping, @DeleteMapping, @PatchMapping이 있습니다. 이 방식은 method 속성을 사용하는 @RequestMapping보다 가독성이 높고 간결합니다.
/users/{id}와 같은 URL에서 경로 변수를 가져오려면 어떻게 합니까?
HTTP 요청 본문의 JSON을 자동으로 역직렬화하려면 어떤 어노테이션을 사용합니까?
+17 면접 질문