Có một tùy chọn thứ ba (và thứ tư) mà bạn chưa vạch ra, đó là sử dụng @BasePathAwareController hoặc @RepositoryRestController, tùy thuộc vào việc bạn có đang thực hiện các hành động dành riêng cho thực thể hay không.
@RepositoryRestResource được sử dụng để đặt các tùy chọn trên giao diện Kho lưu trữ công cộng - nó sẽ tự động tạo các điểm cuối khi thích hợp dựa trên loại Kho lưu trữ đang được mở rộng (tức là CrudRepository / PagingAndSortingRepository / v.v.).
@BasePathAwareController và @RepositoryRestController được sử dụng khi bạn muốn tạo các điểm cuối theo cách thủ công, nhưng muốn sử dụng cấu hình Spring Data REST mà bạn đã thiết lập.
Nếu bạn sử dụng @RestController, bạn sẽ tạo một tập hợp các điểm cuối song song với các tùy chọn cấu hình khác nhau - tức là một trình chuyển đổi thông báo khác nhau, trình xử lý lỗi khác nhau, v.v. - nhưng chúng sẽ vui vẻ cùng tồn tại (và có thể gây nhầm lẫn).
Tài liệu cụ thể có thể được tìm thấy tại đây .