JAX-RS介绍——Java API forRESTful WebServices,JAX-RS的目标是Web Services开发(这与HTML Web应用不同)而Spring MVC的目标则是Web应用开发
JAX-RS
Java API forRESTful WebServices旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。是一个Java编程语言的应用程序接口,支持按照表象化状态转变 (REST)架构风格创建Web服务Web服务。
与传统的 servlet 模型相比,JAX-RS 提供了一种可行的、更为简便、移植性更好的方式来在 Java 内实现 RESTful 服务。使用注释让您能够轻松提供 Java 资源的路径位置并将 Java 方法绑定到 HTTP 请求方法。一种可移植的数据绑定架构提供了一些本机的 Java 类型支持并允许进行序列化/反序列化处理的完全定制。javax.ws.rs.core.Application 子类的扩展以及 web.xml 内的相应清单表明了用最少的部署描述符配置就能进行轻松部署。
JAX-RS 的具体实现由第三方提供,例如 Sun 的参考实现 Jersey、Apache 的 CXF 以及 JBoss 的 RESTEasy。
JAX-RS标注
JAX-RS提供了一些标注将一个资源类,一个POJO类,封装为Web资源。标注包括:
@Path,标注资源类或方法的相对路径
@GET,@PUT,@POST,@DELETE,标注方法是用的HTTP请求的类型,分别对应 4 种 HTTP 方法,用于对资源进行创建、检索、更新和删除的操作。
- 若要创建资源,应该使用 POST 方法;
- 若要检索某个资源,应该使用 GET 方法;
- 若要更改资源状态或对其进行更新,应该使用 PUT 方法;
- 若要删除某个资源,应该使用 DELETE 方法。
@Produces,标注返回的MIME媒体类型
@Consumes,标注可接受请求的MIME媒体类型
@PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam,分别标注方法的参数来自于HTTP请求的不同位置,
- @PathParam来自于URL的路径,
- @QueryParam来自于URL的查询参数,
- @HeaderParam来自于HTTP请求的头信息,
- @CookieParam来自于HTTP请求的Cookie。
-
@Path("/") public class BookkeepingService { ...... @Path("/person/") //资源方法;若无@POST,则为子资源定位器 @POST @Consumes("application/json") public Response createPerson(Person person) { //JSON 格式的请求体被自动映射为实体参数person ...... } @Path("/person/") @PUT @Consumes("application/json") public Response updatePerson(Person person) { ...... } @Path("/person/{id:\\d+}/") //正则表达式 @DELETE public Response deletePerson(@PathParam("id") int id) { ...... } @Path("/person/{id:\\d+}/") @GET @Produces("application/json") public Person readPerson(@PathParam("id") int id) { ...... } @Path("/persons/") @GET @Produces("application/json") public Person[] readAllPersons() { //数组类型的返回值被自动映射为 JSON 格式的响应体——? ...... } @Path("/person/{name}/") @GET @Produces("application/json") public Person readPersonByName(@PathParam("name") String name) { ...... }
这是一个示意的例子!
相关文章
- java 怎样卸载一个类_Java 动态卸载类[通俗易懂]
- java高级工程师_一名Java高级工程师需要学什么?
- java parrallel for,Java 8 parallel forEach进度指示
- java webservice 实例_Java WebService 简单实例(附实例代码)
- java基本数据类型 think in java_Think in Java(一):Java基础[通俗易懂]
- java 阶乘算法_Java 实现阶乘算法
- Java vs Kotlin
- java list 转json 字符串_Java之JSON字符串与List集合之间相互转换
- 三面“有赞”Java岗斩获offer:Spring+JVM+并发锁+分布式+算法
- 电子病历源码 JAVA电子病历系统源码
- 超详细解读Java接口:模块通信协议以及默认方法和静态方法
- java JNI: C 语言调用 Java 方法示例详解编程语言
- Java数组操作详解编程语言
- spring使用Spring整合Redis和Jedis构建高性能应用(redisjedis与)
- 技术的融合突破极限:Java与Redis的技术融合(java与redis)
- 使用Java操作MySQL数据库快速精准查询(java查询mysql数据库)
- 客户端建立Redis集群:Java客户端指南(redis集群java)
- 持久化Java持久化技术与Redis高级应用(redis高级之java)
- 应用Linux监控下Java应用性能分析(linux监控java)
- Java实现Linux:跨平台解决方案(java 实现linux)
- Java编程与Oracle技术创造技术价值的奥秘(java编程oracle)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)