Câu hỏi phỏng vấn Spring
Câu hỏi

Có thể gửi một đối tượng làm response từ phương thức xử lý Controller không?

Câu trả lời

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@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:

java Copy
@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@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

middle

Gợi ý câu hỏi phỏng vấn

middle

Spring Bean có cung cấp tính an toàn đối với luồng (thread safety) không?

senior

Autowiring trong Spring có những hạn chế gì?

senior

Trong Spring, inner beans là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào