Sağlayıcılar, JAX-RS çalışma zamanını genişletmenin ve özelleştirmenin basit bir yoludur. Bunları, bir dizi (program tanımlı) hedefi gerçekleştirmek için çalışma zamanının davranışını (potansiyel olarak) değiştiren eklentiler olarak düşünebilirsiniz.
Sağlayıcılar, kaynak sınıfları ile aynı değildir , kavramsal olarak, kaynak sınıfları ile JAX-RS uygulaması arasında bir seviyede bulunurlar. İşe yararsa, bunları aygıt sürücüleriyle aynı ışıkta düşünebilirsiniz (kullanıcı ve çekirdek alanı arasında var olan). Bu geniş bir genellemedir.
Mevcut JAX-RS spesifikasyonu ile tanımlanan üç sağlayıcı sınıfı vardır. Aralarındaki ortak nokta, tüm sağlayıcıların @Provider ek açıklamasıyla tanımlanması ve yapıcı bildirimi için belirli kurallara uyması gerektiğidir. Bunun dışında, farklı sağlayıcı türleri ek açıklamalara sahip olabilir ve farklı arabirimler uygulayacaktır.
Varlık Sağlayıcıları
Bu sağlayıcılar, veri temsillerinin (XML, JSON, CSV gibi) Java nesne eşdeğerleriyle eşleştirilmesini kontrol eder.
Bağlam Sağlayıcıları
Bu sağlayıcılar, kaynakların @Context ek açıklamaları aracılığıyla erişebileceği bağlamı kontrol eder.
İstisna Sağlayıcılar
Bu sağlayıcılar, Java istisnalarının bir JAX-RS Response örneğiyle eşlenmesini kontrol eder.
Çalışma zamanınız, temel bir işlevsellik düzeyinin uygulanmasından sorumlu olacak bir dizi önceden tanımlanmış sağlayıcıyla birlikte gelir (örneğin, XML'e ve XML'den eşleştirme, en yaygın istisnaları çevirme vb.). Gerektiğinde kendi sağlayıcılarınızı da oluşturabilirsiniz.
JAX-RS özellikleri bu farklı sağlayıcı türleri ve ne (Bölüm 4'e bakınız) do üzerinde okuma için iyi bir referanstır.