Nhà cung cấp chỉ là một cách đơn giản để mở rộng và tùy chỉnh thời gian chạy JAX-RS. Bạn có thể coi chúng như là các plugin (có khả năng) thay đổi hành vi của thời gian chạy, để đạt được một tập hợp các mục tiêu (do chương trình xác định).
Trình cung cấp không giống như các lớp tài nguyên, chúng tồn tại, về mặt khái niệm, ở mức giữa các lớp tài nguyên và việc triển khai JAX-RS. Nếu nó hữu ích, bạn có thể nghĩ về chúng giống như trình điều khiển thiết bị (tồn tại giữa không gian người dùng và nhân). Đây là một khái quát rộng.
Có ba lớp nhà cung cấp được xác định bởi đặc tả JAX-RS hiện tại. Điểm chung giữa chúng là tất cả các nhà cung cấp phải được xác định bằng chú thích @Provider và tuân theo các quy tắc nhất định để khai báo hàm tạo. Ngoài ra, các loại trình cung cấp khác nhau có thể có thêm chú thích và sẽ triển khai các giao diện khác nhau.
Nhà cung cấp thực thể
Các nhà cung cấp này kiểm soát việc ánh xạ các biểu diễn dữ liệu (như XML, JSON, CSV) sang các đối tượng Java tương đương của họ.
Nhà cung cấp ngữ cảnh
Các nhà cung cấp này kiểm soát ngữ cảnh mà tài nguyên có thể truy cập thông qua chú thích @Context.
Nhà cung cấp ngoại lệ
Các nhà cung cấp này kiểm soát việc ánh xạ các ngoại lệ Java tới một cá thể Phản hồi JAX-RS.
Thời gian chạy của bạn sẽ đi kèm với một số nhà cung cấp được xác định trước sẽ chịu trách nhiệm triển khai cấp cơ sở của chức năng (ví dụ: ánh xạ tới và từ XML, dịch các ngoại lệ phổ biến nhất, v.v.). Bạn cũng có thể tạo các nhà cung cấp của riêng mình nếu cần.
Đặc tả JAX-RS là một tài liệu tham khảo tốt để đọc về các loại trình cung cấp khác nhau này và những gì chúng làm (xem Chương 4).