Có thể gửi một đối tượng làm response
từ phương thức xử lý Controller
không?
Có thể gửi một đối tượng làm response
từ phương thức xử lý Controller
không?
Có, bạn hoàn toàn có thể gửi một đối tượng làm response
từ phương thức xử lý Controller
trong Spring Framework. Điều này thường được thực hiện thông qua việc sử dụng annotation @ResponseBody
hoặc @RestController
(kết hợp @Controller
và @ResponseBody
).
Khi bạn đánh dấu một phương thức trong Controller
với @ResponseBody
, Spring sẽ tự động chuyển đổi đối tượng trả về của phương thức đó thành JSON (hoặc XML, tùy thuộc vào cấu hình) và gửi nó trở lại cho client như là phần thân của response HTTP. Điều này được thực hiện thông qua các HttpMessageConverter
được cấu hình trong Spring.
Ví dụ, giả sử bạn có một đối tượng User
và bạn muốn trả về thông tin của đối tượng này dưới dạng JSON từ một phương thức trong Controller
:
@RestController
public class UserController {
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
User user = userService.findById(id);
return user;
}
}
Trong ví dụ trên, @RestController
kết hợp @Controller
và @ResponseBody
, cho phép bạn trả về đối tượng User
trực tiếp từ phương thức getUser
. Spring sẽ tự động chuyển đổi đối tượng User
thành JSON và gửi nó như là phần thân của response HTTP.
Để chức năng này hoạt động, bạn cần đảm bảo rằng đã cấu hình đúng các dependency cần thiết cho việc chuyển đổi dữ liệu (ví dụ: Jackson cho JSON) trong file pom.xml
hoặc build.gradle
của dự án Spring của bạn.
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào