# Spring MVC Basics (Spring Boot) > Spring MVC, kiến trúc MVC, DispatcherServlet, @Controller, ViewResolver, mẫu Model-View-Controller - 20 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: Spring Boot](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van.md) ## 1. Annotation nào biến một lớp Java thành một controller Spring MVC? **Câu trả lời** @Controller đánh dấu một lớp là controller Spring MVC xử lý các yêu cầu HTTP. Đây là một chuyên biệt hóa của @Component và cho phép component scanning tự động phát hiện controller. @RestController kết hợp @Controller và @ResponseBody cho các REST API, trong khi @RequestMapping định nghĩa các ánh xạ URL nhưng tự nó không khai báo một controller. ## 2. Sự khác biệt chính giữa @Controller và @RestController là gì? **Câu trả lời** @RestController kết hợp @Controller và @ResponseBody, nghĩa là tất cả các phương thức tự động trả về dữ liệu được tuần tự hóa (JSON/XML) thay vì tên view. Với @Controller, bạn phải thêm @ResponseBody vào mỗi phương thức để trả về dữ liệu. @RestController được thiết kế cho các REST API, trong khi @Controller được dùng cho các ứng dụng web truyền thống với việc render view. ## 3. Làm thế nào để ánh xạ một phương thức controller tới một yêu cầu HTTP POST trên URL /users? **Câu trả lời** @PostMapping là annotation chuyên biệt để ánh xạ một phương thức tới các yêu cầu POST trên một URL cụ thể. Đây là cách viết tắt của @RequestMapping(method = RequestMethod.POST). Các annotation chuyên biệt khác bao gồm @GetMapping, @PutMapping, @DeleteMapping và @PatchMapping. Cách tiếp cận này dễ đọc và súc tích hơn so với @RequestMapping kèm thuộc tính method. ## Còn 17 câu hỏi nữa - Làm thế nào để lấy một biến path từ một URL như /users/{id}? - Annotation nào được dùng để tự động giải tuần tự hóa JSON từ phần thân yêu cầu HTTP? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Spring Boot khác - [Spring Core - IoC & DI](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-core-ioc-di.md): 22 câu hỏi, Junior - [Spring Boot Auto-Configuration](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-boot-auto-configuration.md): 20 câu hỏi, Junior - [Spring Boot Starters](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-boot-starters.md): 18 câu hỏi, Junior - [Application Properties & YAML](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/application-properties-yml.md): 16 câu hỏi, Junior - [Logging với SLF4J và Logback](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/logging.md): 20 câu hỏi, Junior - [Spring Boot DevTools](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-boot-devtools.md): 15 câu hỏi, Junior - [Spring REST Controllers](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-rest-controllers.md): 20 câu hỏi, Mid-Level - [Request & Response Handling](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/request-response-handling.md): 20 câu hỏi, Mid-Level - [Xử lý ngoại lệ](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/exception-handling.md): 25 câu hỏi, Mid-Level - [Bean Validation](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/bean-validation.md): 25 câu hỏi, Mid-Level - [Kiến thức cơ bản về Spring Data JPA](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-data-jpa-basics.md): 25 câu hỏi, Mid-Level - [Thực thể JPA & Quan hệ](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/jpa-entities-relationships.md): 30 câu hỏi, Mid-Level - [Truy vấn JPA](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/jpa-queries.md): 30 câu hỏi, Mid-Level - [Spring Data Repositories](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-data-repositories.md): 25 câu hỏi, Mid-Level - [Cơ bản về Spring Security](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-security-basics.md): 25 câu hỏi, Mid-Level - [Spring Boot Actuator](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-boot-actuator.md): 20 câu hỏi, Mid-Level - [Kiểm thử đơn vị với JUnit & Mockito](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/testing-junit-mockito.md): 30 câu hỏi, Mid-Level - [Kiểm thử Spring Boot](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-boot-testing.md): 30 câu hỏi, Mid-Level - [Profiles và Environment](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/profiles-environment.md): 20 câu hỏi, Mid-Level - [RestTemplate và WebClient](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/resttemplate-webclient.md): 24 câu hỏi, Mid-Level - [Async và Scheduling](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/async-scheduling.md): 25 câu hỏi, Mid-Level - [Caching với Spring](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/caching.md): 25 câu hỏi, Mid-Level - [Spring WebFlux (Reactive)](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-webflux.md): 25 câu hỏi, Mid-Level - [Giao dịch Spring](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/transactions.md): 30 câu hỏi, Senior - [Xác thực và phân quyền nâng cao](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/authentication-authorization.md): 30 câu hỏi, Senior - [JWT & Bảo mật Stateless](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/jwt-stateless-security.md): 20 câu hỏi, Senior - [OAuth2 & Authorization Server](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/oauth2-authorization-server.md): 20 câu hỏi, Senior - [Spring Boot và Docker](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-boot-docker.md): 19 câu hỏi, Senior - [Microservices với Spring](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/microservices-basics.md): 25 câu hỏi, Senior - [Spring Cloud Config](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-cloud-config.md): 19 câu hỏi, Senior - [Tối ưu hóa hiệu năng](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/performance-optimization.md): 30 câu hỏi, Senior - [GraalVM Native Images](https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/graalvm-native-images.md): 20 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/spring-boot/cau-hoi-phong-van/spring-mvc-basics