JAX-आरएस
JAX-RS जावा में REST वेब सेवाओं को लागू करने के लिए एक विनिर्देश है , जिसे वर्तमान में JSR-370 द्वारा परिभाषित किया गया है । यह जावा ईई प्रौद्योगिकियों का हिस्सा है , जिसे वर्तमान में जेएसआर 366 द्वारा परिभाषित किया गया है ।
जर्सी ( ग्लासफिश और पयारा के साथ भेज दिया गया) JAX-RS संदर्भ कार्यान्वयन है, हालांकि RESTEasy (JBoss EAP और WildFly के साथ भेज दिया गया) और Apache CXF (TomEE और WebSphere के साथ भेज दिया गया ) जैसे अन्य कार्यान्वयन हैं ।
स्प्रिंग फ्रेमवर्क
स्प्रिंग फ्रेमवर्क एक है पूर्ण रूपरेखा है कि आप जावा उद्यम अनुप्रयोगों को बनाने के लिए अनुमति देता है। REST क्षमताएं स्प्रिंग MVC मॉड्यूल ( मॉडल-व्यू-कंट्रोलर क्षमताओं को प्रदान करने वाला समान मॉड्यूल) द्वारा प्रदान की जाती हैं । यह JAX-RS कार्यान्वयन नहीं है और इसे JAX-RS मानक के स्प्रिंग विकल्प के रूप में देखा जा सकता है।
स्प्रिंग इकोसिस्टम उद्यम अनुप्रयोगों के निर्माण, दृढ़ता, सुरक्षा, सामाजिक नेटवर्क के साथ एकीकरण, बैच प्रोसेसिंग आदि को कवर करने के लिए कई प्रकार की परियोजनाएं भी प्रदान करता है ।
उदाहरण
JAX-RS API का उपयोग करते हुए निम्नलिखित संसाधन नियंत्रक पर विचार करें:
@Path("/greetings")
public class JaxRsController {
@GET
@Path("/{name}")
@Produces(MediaType.TEXT_PLAIN)
public Response greeting(@PathParam("name") String name) {
String greeting = "Hello " + name;
return Response.ok(greeting).build();
}
}
स्प्रिंग एमवीसी एपीआई का उपयोग करते हुए समतुल्य कार्यान्वयन होगा:
@RestController
@RequestMapping("/greetings")
public class SpringRestController {
@RequestMapping(method = RequestMethod.GET,
value = "/{name}",
produces = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<?> greeting(@PathVariable String name) {
String greeting = "Hello " + name;
return new ResponseEntity<>(greeting, HttpStatus.OK);
}
}
स्प्रिंग बूट और जर्सी का उपयोग करना
स्प्रिंग बूट spring-boot-starter-jersey
मॉड्यूल प्रदान करता है जो आपको स्प्रिंग MVC के बजाय REST के समापन बिंदु के लिए JAX-RS प्रोग्रामिंग मॉडल का उपयोग करने की अनुमति देता है। यह जर्सी 2.x के साथ काफी अच्छी तरह से काम करता है।
जर्सी 2.x और स्प्रिंग बूट 1.4.x के साथ एक वेब एप्लिकेशन बनाने के एक पूर्ण उदाहरण के लिए, इस उत्तर को देखें ।