@Controller và @RestController trong Spring framework, Spring MVC, Spring Boot

Khi anh chị làm việc với spring framework, spring mvc, spring boot …

Anh chị thường xuyên làm việc với các annotation như @Controller, @RestController. Vậy chúng được dùng như thế nào, anh chị cùng xem bài viết sau của laptrinhjavaweb nhé

1. Tạo project spring mvc sử dụng spring boot 2.0.x, intellij: CHI TIẾT

2. Tạo project web service sử dụng spring boot 1.5.x, eclipse: CHI TIẾT

– Chi tiết: laptrinhjavaweb.com/springboot

– Chi tiết: laptrinhjavaweb.com/springmvc

Giới thiệu chung về @Controller và @RestController trong Spring framework

Spring framework có 2 loại project anh chị thường dùng

1. Project web, cụ thể là Spring MVC

2. Project web service

@Controller được dùng trong cả 2 project, còn @RestController chỉ dùng trong project web service mà thôi

Vậy cách dùng của 2 annotation đó trong 2 project như thế nào, anh chị cùng xem nhé

1.1 Anh chị xem đoạn code mẫu sau

1.2 Ví dụ như đoạn code trên, sau khi kết quả trả ra chúng ta sẽ có như sau

– Trả ra view nào, cụ thể trong đoạn code ví dụ view trả ra là trang home

– Trả ra model nào, tức là data sẽ trả ra view

1.3 Data này không bắt buộc phải có tùy theo yêu cầu của bài toán như thế nào, trong ví dụ không có code mẫu, nếu có data trả ra thì anh chị follow đoạn code sau

2.1 Anh chị xem 2 đoạn code mẫu phía dưới

2.2 Cả 2 cách thức này đều hỗ trợ Spring Framework return http response theo định dạng JSON or XML

Nếu để ý kỹ anh chị sẽ thấy khi sử dụng @RestController anh chị không cần sử dụng @ResponseBody

Tại sao lại như vậy, đơn giản chỉ là sự phát triển phiên bản của Spring Framework mà thôi

@Controller ra đời trước, @RestController ra đời sau nên nhà phát triển họ chủ động bỏ đi để code gọn hơn

@Controller dùng trong cả 2 project, còn @RestController chỉ dùng trong project web service thôi

Trong project web service khi dùng @Controller thì cần sử dụng thêm @ResponseBody để return http response như JSON hoặc XML, còn @RestController thì không cần vì đã tích hợp sẵn trong annotation

– Chi tiết: laptrinhjavaweb.com/springboot

Khóa học spring mvc cơ bản miễn phí