`

继续学习jersey+spring 构建RESTful风格 webservice

 
阅读更多

j先说一下springmvc rest风格

springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的,通过如@RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)即可处理/blog/1 的delete请求.

=======================================

@RequestMapping(value="/blog/{blogId}/message/{msgId}",method=RequestMethod.DELETE)

public ModelAndView delete(@PathVariable("blogId") Long blogId,@PathVariable("msgId") Long msgId,HttpServletRequest request,HttpServletResponse response) {

}

 

ersey 都知道了,再说一下:

 

  1. Jersey是JAX-RS的参考实现,它包含三个主要部分,它可以帮助您实现RESTful Web服务.
  2. 核心服务器(Core Server):通过提供JSR 311中标准化的注释和API标准化,可以用直观的方式开发RESTful Web服务.
  3. 核心客户端(Core Client):Jersey客户端API可以让我们与REST服务轻松通信.
  4. 集成(Integration):Jersey还提供可以轻松集成Spring,Guice,Apache Abdera的库.

    =================================================================

 RESRTful 风格:

可寻址性(Addressability) 
无状态性(Statelessness) 
连通性(Connectedness) 
统一接口(Uniform Interface) 
面向资源(Resource Oriented) 
超文本驱动(Hypertext Driven) 
松耦合(Loosely Coupled) 

通过uri 进行资源命名 不管是(数据表,服务端资源等等),将资源上的操作映射到4种HTTP方法 。

 

Jersey spring整合

 

 增加jersey + spring相关的jar

以及web。xml 配置

<!-- Jersey Servlet 配置 -->

<servlet>

<servlet-name>JerseyServlet</servlet-name>

<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>JerseyServlet</servlet-name>

<url-pattern>/rest/*</url-pattern>

</servlet-mapping>

=======================================

示例简单代码

 

@Component

@Path("/user")

public class UserResource {

 

@Path("/users/{username}")

@GET

@Produces(MediaType.TEXT_PLAIN)

public String getUser(@PathParam("username") String username) {

log.debug("username:{}", username);

return username;

}

}

@Component注解定义此类为spring组件,即bean类.

@Path注解的值是一个相对的URI路径,值得注意的是你仍然可以在URI中嵌入变量,方法如下@Path(“/users/{username}”).

如果需要对userName进行规则匹配,可以自定义的正则表达式,它将覆盖默认的正则表达式”[^/]+”.

例如@Path(“users/{username: [a-zA-Z][a-zA-Z_0-9]}*”),这里username将只匹配一个大写或小写字母和零个或多个字母数字字符和下划线开头,如果给定参数不匹配,将出现404错误.

@Path中定义的URL前后是否有”/”,都不会有影响,但如果你启用了重定向机制,则上面的规则无效.

@pathparem中,URL中只出现参数的值,不是键值对,即url中的变量{var}对应的值

@GET注解是请求方法指示符,这个指示符注解的Java方法会处理HTTP GET请求.

@Produces注解用于指定MIME类型,通常与MediaType联用,可定义在方法区或者类定义上.

若方法区上与类定义上都指定了@Produces,那么方法区上的@Produces会覆盖掉类定义上的@Produces.

@QueryParam注解用于从请求的URL中提取查询参数,且只能在get请求中使用,@QueryParameter可以转换任何有以String为参数的构造函数类.

@DefaultValue注解表示如果url中参数不存在,则会按DefaultValue给定值赋值,如果url中给定值不是给定类型,则会报404错误.

@Consumes注解指定了客户端发送的MIME媒体类型,与@Produces一样,通常与MediaType联用,并且可定义在方法区或者类定义上.

@POST注解是请求方法指示符,这个指示符注解的Java方法会处理HTTP POST请求.

@Context注解是注入上下文对象,如Request,Response,UriInfo,Servlet,Context等.

@FormParam注解用于POST请求,@QueryParam用于GET请求,作用与@QueryParam一样.

  • 直接返回对象,用@Produces控制输出的格式为Html/Xml/JSON等.
  • 返回Response对象,根据不同的输入参数,决定返回Xml/JSON.

当然,你也可以选择使用JAXB,它可以很方便将其序列化为XML,JSON,当然如果选择使用JSON,你需要使用jackson.

@XmlRootElement
public class User {
 
	private int id;
 
	private String username;
 
	public User() {
	}
 
	public User(int id, String username) {
		this.id = id;
		this.username = username;
	}
 
	// setter getter //
	...
}

 

分享到:
评论

相关推荐

    spring4+myabtis3+jersey(restful风格的webservice)

    本项目基于Spring4、MyBatis3和Jersey构建了一个RESTful风格的Web服务框架,旨在提供高效、灵活且易于维护的API接口。RESTful架构是一种面向资源的Web服务设计风格,强调简洁、统一的接口,使得客户端与服务器之间的...

    jersey+spring rest webservice web maven

    标题中的"jersey+spring rest webservice web maven"是一个基于Java开发的RESTful Web服务架构,它结合了几个关键的技术组件。让我们深入探讨每个部分: 1. **Jersey**: Jersey是Java RESTful Web服务(JAX-RS)...

    Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用

    "Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用" RESTful Web服务简介 ----------------- RESTful Web服务是使用HTTP和REST原理实现的Web服务。REST 中最重要的概念是资源(resources),使用全球ID...

    Jersey和Tomcat构建RESTful WebService

    ### Jersey和Tomcat构建RESTful WebService #### RESTful Web服务简介 REST(Representational State Transfer)是由HTTP规范1.0和1.1版的主要作者之一Roy Fielding在其2000年的博士论文中提出的。REST的核心思想...

    Restful WebService + Spring

    总的来说,"Restful WebService + Spring"的结合使得开发人员能够利用Spring的强大功能和RESTful的简洁设计原则,构建高效、可维护的Web服务。通过合理地组织资源、利用HTTP方法和状态码,以及借助Spring的自动化...

    rest+spring+webservice交互xml文件

    这些库通常包括处理REST请求和响应的核心组件,如JAX-RS(Java API for RESTful Web Services)的实现,例如Jersey。在本例中,你需要选择四个依赖库,这些库可能包含了处理REST请求、响应、XML解析等功能。 第二步...

    基于jersey搭建webservice框架

    【基于Jersey搭建WebService框架】 在Java开发中,构建RESTful Web服务时,Jersey是一个常用的框架。它作为Java EE的一部分,提供了实现 Representational State Transfer (REST) 架构风格的工具集。本教程将围绕...

    Spring整合CXF,发布RSETful 风格WebService

    在本文中,我们将探讨如何将Spring与Apache CXF框架整合,以发布RESTful风格的Web服务。RESTful Web服务是一种轻量级的架构风格,它基于HTTP协议,使用URI(Uniform Resource Identifier)来定位资源,通过HTTP方法...

    rest webservice demo spring

    这个"rest webservice demo spring"项目可能是为了展示如何在Spring环境中集成Jersey,创建RESTful Web服务,以及如何处理请求和响应。通过分析和运行这个示例,开发者可以深入理解RESTful服务的设计原则和Spring...

    使用SpringBoot整合jersey 实现Restful web service.同时整合springmvc。

    在本文中,我们将深入探讨如何使用SpringBoot框架与Jersey库整合来实现RESTful Web服务,并同时集成Spring MVC。这将使我们能够构建一个高效、灵活的后端系统,为客户端提供API接口。 首先,SpringBoot是Spring框架...

    jersey-spring-mysql-restfull-webservice

    RESTful 书签 Jersey + Spring 保存链接的应用示例,界面采用AngularJS+Twitter Bootstrap,服务端采用Jersey与Spring集成,提供RESTful数据服务。 前端和后端之间的通信是通过 JSON 序列化的信息完成的。安装指南...

    利用spring整合jersey和Protobuf,搭建REST web服务

    在本项目中,我们主要探讨的是如何将Spring框架与Jersey和Google的Protocol Buffers(简称Protobuf)相结合,以构建一个RESTful Web服务。这是一个典型的企业级应用开发场景,其中Spring提供了强大的依赖注入和AOP...

    基于springmvc、spring、mybatis的web框架

    Jersey可以无缝地整合到Spring环境中,提供了一种优雅的方式来构建Webservice,实现前后端的解耦。 结合这些组件,我们可以构建出一个强大的Web应用架构。SpringMVC处理HTTP请求,Spring管理服务层和持久层的组件,...

    RESTful Java Web Services

    1. **选择合适的框架**:Java提供了多种用于开发RESTful Web服务的框架,包括Spring Boot、Jersey和RestEasy等。Spring Boot因其强大的生态系统和简化配置的功能而受到广泛欢迎;Jersey则是Java EE 7标准的一部分,...

    angular-java-rest:Angular + rest (Jersey2) + spring-jpa-data

    - Jersey Restful WebService [Servlet3] - Servlet 3 沙发服务弹簧(angular-rest-service) -IOC - - 沙发持久性(angular-rest-dao) - ORM - 内存中的 DB 测试功能 GEB - 非常 Groovy 的浏览器自动化 ...

    对WebService的系统研究, 七种方式实现!

    在本文中,我们将深入探讨七种实现WebService的方法,这些方法涵盖了从基本的JDK实现到利用高级框架如CXF和Spring的解决方案。 1. **JDK SOAP实现**:基于Java API for XML Processing (JAXP) 和SOAP with ...

    ssh rest ws jax-rs jersey 做的小网站后台及web service接口

    【SSH REST WS JAX-RS Jersey 小网站后台及Web Service接口详解】 SSH(Spring、Struts、...通过学习和理解这个项目,开发者不仅可以深化对SSH框架的理解,还能掌握RESTful服务的实现,以及前端编辑和上传组件的使用。

    Java RESTful Plugin for Eclipse:用户可以一键创建 Java RESTful Web 服务。-开源

    用于 Eclipse 的 RESTful 插件帮助用户一键创建 RESTful ... 1) Spring RESTful Webservice 2) Jersey RESTful Webservice 3) RESTEasy RESTful Webservice 4) Restlet RESTful Webservice URL:http://oneclicklabs.io

    WebService的两种客户端调用方式

    对于RESTful API,可以使用JAX-RS(如Jersey)或Spring MVC来实现。这些框架提供了方便的API,简化了请求的构建和响应的处理。 四、工具辅助调用 1. SoapUI:这是一个强大的SOAP和REST测试工具,可以方便地创建和...

    Java webService服务端封装

    - **Spring Boot**:结合Spring框架,可以轻松创建包含WebService的微服务应用。 5. **测试与调试** - **单元测试**:使用JUnit或TestNG编写服务方法的测试用例。 - **集成测试**:模拟客户端进行服务调用,确保...

Global site tag (gtag.js) - Google Analytics