Jersey ile jax-rs arasındaki fark nedir


95

Jersey'in ne olduğunu gerçekten anlayamıyorum ..

Bildiğim şey, Jax-RS'nin REST web hizmetleri ve jersey oluşturmak için bir API olduğu? Bazı bilgiler aldım ve hepsi aynı diyor: "Jersey, Jax-RS'nin bir uygulamasıdır". Ama bu ne anlama geliyor?

Jax-rs bir API ise, dinlenme web hizmeti oluşturmak için neden Jersey'e ihtiyacımız var? Jersey, jax-rs ile nişan almak için birkaç lib mi daha? evet ise, jax-rs eksik bir API mı?


13
Jersey , JAX-RS spesifikasyonunun bir uygulamasında
Brian Roach

1
Jersey, JAX-r'leri daha kolay kullanmak için bir arayüz. JAX-RS servlet sağlamaz, ancak Jersey sağlar. Jersey, Restful web hizmetlerini bir Java servlet kapsayıcısında uygulamak için bir kitaplık sağlar; Jersey, RESTful kaynaklarını tanımlamak için önceden tanımlanmış sınıfları tarayan bir servlet uygulaması sağlar. Web.xml yapılandırma dosyanızda, web uygulamanız için bu sunucu uygulamasını kaydettirin.
taymedee

1
JAX-RS bir spesifikasyondur (temelde neyin uygulanacağını / takip edileceğini söyler) ve Jersey bir uygulamadır (bu, bu spesifikasyonların nasıl uygulanması gerektiği anlamına gelir). Bir Spesifikasyon için birden fazla uygulamaya sahip olabiliriz. JAX-RS için kütüphanelerimiz var çünkü kodunuzda JAX-RS API'lerini kullanabiliriz, böylece ileride uygulamanızı değiştirirseniz (bu durumda Jersey'i başka bir şeye dönüştürürseniz) kodunuz yine de düzgün çalışacaktır. Arayüzünüz ve uygulama sınıfınız ile ilişkilendirebilirsiniz.
Vishal Akkalkote

@VishalAkkalkote Merhaba, kafamı bunun etrafına dolamaya çalışıyorum. İş yerinde Websphere 8.5 kullanıyorum ve JAX-RS kullanarak REST hizmetleri yazmaya çalışıyorum, ancak tüm eğitimler Jersy ile JAX-RS'yi gösteriyor. Aynı KESİN kodu yazabilirim ve Jersy lib kullanmasam bile çalışacağını mı söylüyorsunuz?
superPhreshHackerKid

1
@superPhreshHackerKid Evet. JAX-RS uygulamasından birini kullanmanız şartıyla çalışmalıdır. örneğin Apache CXF
Vishal Akkalkote

Yanıtlar:


99

JAX-RS bir spesifikasyondur (sadece bir tanımdır) ve Jersey bir JAX-RS uygulamasıdır.


14
Yani jax-rs ne yapmamız gerektiğini söylüyor ve Jersey bunu mu yapıyor? Bu mantıklı, ama neden jax-rs lib'leri var ??
user1851366

20
Örneğin: JAX-RS size Jersey tarafından uygulanan bir dizi arayüz (standart Java arayüzleri) verir. Uygulanacak bir bağımlılık olarak bu arabirimlere (veya sınıflara) ihtiyaç vardır.
Ale Zalazar

3
iyi, bu mantıklı ... Ama jax-rs'yi uygulamak için her zaman başka sınıflara ihtiyacımız var, değil mi? Bunun gibi, jersey ..
user1851366

11
Bu doğru. yani JAX-RS size javax.ws.rs.core.Request arabirimini verir ve Jersey bunu com.sun.jersey.spi.container.ContainerRequest'de uygular
Ale Zalazar

9
Bu, JPA'nın spesifikasyon olması ve hazırda bekletme modunun uygulamasından biri olmasıyla aynı mıdır?
DesirePRG

26

Dan Düz forması sitede

Jersey çerçevesi, JAX-RS Referans Uygulamasından daha fazlasıdır. Jersey, RESTful hizmetini ve istemci geliştirmeyi daha da basitleştirmek için JAX-RS araç setini ek özellikler ve yardımcı programlarla genişleten kendi API'sini sağlar. Jersey ayrıca geliştiricilerin ihtiyaçlarını en iyi şekilde karşılayacak şekilde genişletebilmeleri için çok sayıda uzantı YSİ'sini ortaya çıkarır.


3
Bunu okudum ama sorumu sorma. Jax-RS'imiz varsa neden Jersey'e ihtiyacımız var? jax eksik mi?
user1851366

28
@ user1851366 Arabalar için tasarımlar yaratan (ve ücretsiz olarak dağıtan) hayırsever bir organizasyon olduğunu hayal edin. Dünyanın dört bir yanındaki üreticiler bu tasarımların iyi olduğunun farkındadır ve bu tasarımlara dayalı gerçek arabaları kullanır. JAX-RS tıpkı RESTful API'lerin nasıl oluşturulacağına dair bir plan veya tasarım gibidir ve yazılım üreticileri bunu tanır ve bu fikirleri gerçek RESTful API'lerle uygular, bunlardan biri Jersey olarak adlandırılır, ancak diğerleri de vardır (yani RESTEasy). Tıpkı Toyota'nın yanı sıra diğer birçok üreticinin tasarımları kendi otomobil versiyonlarını yaratmak için kullanabileceği gibi.
Edwin Dalorzo

3

JAX-RS bir spesifikasyondur (sadece bir tanımdır) ve Jersey bir JAX-RS uygulamasıdır. Jersey çerçevesi, JAX-RS Referans Uygulamasından daha fazlasıdır. Jersey, RESTful hizmetini ve istemci geliştirmeyi daha da basitleştirmek için JAX-RS araç setini ek özellikler ve yardımcı programlarla genişleten kendi API'sini sağlar.


2

JAX-RS bir özelliktir ve Jersey bir JAX-RS uygulamasıdır. - Doğru

Bu, OOPS ilkeleri ile ilgili olarak anlaşılabilir. JAX-RS bir Arayüzdür ve Jersey de bu arayüzü uygulayan bir sınıftır.

Bu Spesifikasyon, web hizmetlerini geliştirmek ve kullanmak için bir STANDART oluşturur.

Wink, RestEasy gibi başka JAX-RS uygulamaları da var.

JAX-RS, web servislerini nasıl uygulayabileceğimizi, giriş tipi, giriş formatı, çıktı tipi, formatı, konfigürasyonu vb. Ne olacağını belirten bir spesifikasyondur. RestEasy vb.

Ayrıca, Java'nın JPA (Java Persistence API) gibi spesifikasyonları vardır ve yukarıda belirtildiği gibi JPA'nın bir uygulaması olan Hibernate vardır.


2

JAX-RS'yi tek başına kullanmak REST uygulayamaz, Jersey'i REST istekleri için sunucu uygulaması dağıtıcısı olarak kaydetmeniz gerekir. web.xml

Standart ve taşınabilir bir JAX-RS API tasarlanmıştır. Jersey RESTful Web Hizmetleri çerçevesi, JAX-RS API'leri için destek sağlayan ve JAX-RS (JSR 311 ve JSR 339) Referans Uygulaması olarak hizmet veren Java'da RESTful Web Hizmetleri geliştirmek için açık kaynak, üretim kalitesi ve çerçevedir.

Jersey çerçevesi, JAX-RS Referans Uygulamasından daha fazlasıdır. Jersey, RESTful hizmetini ve istemci geliştirmeyi daha da basitleştirmek için JAX-RS araç setini ek özellikler ve yardımcı programlarla genişleten kendi API'sini sağlar. Kaynak

Daha fazlası için

Restlet ve Jersey, Java ekosisteminde RESTful web servislerini geliştirmek için kullanılan en popüler JAX-RS uygulamalarından ikisidir ancak Apache Wink, Apache CXF ve JBoss RESTEasy gibi birkaç başka uygulama da vardır. Kaynak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.