JAX-RS
JAX-RS เป็นข้อกำหนดสำหรับการใช้บริการเว็บ REST ใน Java กำหนดไว้ในปัจจุบันโดยJSR-370 มันเป็นส่วนหนึ่งของเทคโนโลยี Java EEที่กำหนดไว้ในขณะนี้โดยJSR 366
Jersey (มาพร้อมกับ GlassFish และ Payara) เป็นการนำไปใช้อ้างอิง JAX-RS อย่างไรก็ตามมีการใช้งานอื่น ๆ เช่นRESTEasy (มาพร้อมกับ JBoss EAP และ WildFly) และApache CXF (มาพร้อมกับ TomEE และ WebSphere)
กรอบสปริง
ฤดูใบไม้ผลิกรอบเป็นกรอบการทำงานเต็มรูปแบบที่ช่วยให้คุณสามารถสร้างโปรแกรมประยุกต์ขององค์กร Java ความสามารถ REST จัดเตรียมโดยโมดูลSpring MVC (โมดูลเดียวกับที่มีความสามารถในการดูโมเดลคอนโทรลเลอร์ ) ไม่ใช่การใช้งาน JAX-RS และสามารถมองว่าเป็นทางเลือกของ Spring สำหรับมาตรฐาน JAX-RS
ระบบนิเวศของ Spring ยังมีโครงการที่หลากหลายสำหรับการสร้างแอปพลิเคชันระดับองค์กรซึ่งครอบคลุมถึงการคงอยู่การรักษาความปลอดภัยการรวมเข้ากับเครือข่ายสังคมการประมวลผลแบบกลุ่ม ฯลฯ
ตัวอย่าง
พิจารณาตัวควบคุมทรัพยากรต่อไปนี้โดยใช้ 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();
}
}
การใช้งานที่เทียบเท่าโดยใช้ Spring MVC API จะเป็น:
@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 และ Jersey
Spring Boot มีspring-boot-starter-jersey
โมดูลที่อนุญาตให้คุณใช้โมเดลการเขียนโปรแกรม JAX-RS สำหรับจุดสิ้นสุด REST แทน Spring MVC ใช้งานได้ดีกับ Jersey 2.x.
สำหรับตัวอย่างที่สมบูรณ์ของการสร้างเว็บแอปพลิเคชันด้วย Jersey 2.x และ Spring Boot 1.4.x โปรดดูคำตอบนี้