`

Jersey + Spring

阅读更多

Jersey+Spring构建RESTful Web服务

<!-- .entry-meta -->

<!-- .entry-header -->

Jersey介绍

  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的库.

 

Jersey spring整合

Web集成:在web.xml中加入servlet,见配置

 

spring集成:将所需要的jar增加至classpath中,见maven pom.xml配置

 

 

示例详解

先看一个最简单的例子

 

  • @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前后是否有”/”,都不会有影响,但如果你启用了重定向机制,则上面的规则无效.
  • @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.

 

异常处理

最简单的抛一个干净的500错误,throw new WebApplicationException();

如果需要自定义错误返回码和错误信息,可以使用如下方法

 

分享到:
评论

相关推荐

    jersey+spring+srpingmvc实现上传

    【标题】:“jersey+spring+springmvc实现上传” 在Web开发中,文件上传功能是一项常见且重要的任务。本示例将介绍如何结合Jersey、Spring和Spring MVC框架来实现这一功能。Jersey是Java RESTful Web服务的实现,而...

    jersey+spring+mybatis整合

    "jersey+spring+mybatis整合"就是一种常见的Java Web开发模式,它结合了RESTful服务、依赖注入和持久层管理的优势。让我们详细了解一下这三个关键组件以及它们如何协同工作。 1. **Jersey**: Jersey是Java RESTful ...

    Jersey+spring Demo

    【标题】"Jersey+Spring Demo" 是一个基于Java的Web服务开发实例,它整合了两个重要的技术框架:Jersey和Spring。这个示例旨在帮助开发者理解如何在J2EE环境中构建RESTful Web服务,同时利用Spring框架进行依赖注入...

    jersey+spring+mybatis框架初使用

    【jersey+spring+mybatis框架初使用】 在IT行业中,开发Web应用程序时,我们经常使用各种框架来简化工作流程并提高效率。本教程将引导初学者了解如何整合jersey、spring和mybatis这三个强大的开源框架,以实现基本...

    jersey+spring+hibernate配置.pdf

    jersey+spring+hibernate配置.pdf

    jersey+spring实例代码(包括文件上传)

    【标题】"jersey+spring实例代码(包括文件上传)"所涉及的知识点主要集中在使用Jersey作为RESTful服务框架与Spring框架集成,并实现文件上传功能。让我们深入了解一下这两个技术及其在实际项目中的应用。 **Jersey**...

    jersey+spring2.5+hibernate3.3+jpa

    标题 "jersey+spring2.5+hibernate3.3+jpa" 指的是一种集成技术,将轻量级的RESTful服务框架Jersey、企业级应用框架Spring 2.5、持久层框架Hibernate 3.3以及Java Persistence API(JPA)结合在一起,以实现高效且...

    jersey+spring rest webservice web maven

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

    jersey+spring

    《jersey+spring整合应用详解》 在现代Web开发中,jersey和spring的结合使用已经成为构建RESTful API服务的常见选择。jersey是Java语言中实现 Representational State Transfer (REST) 架构风格的轻量级框架,而...

    jersey+spring+hibernate配置

    ### Jersey+Spring+Hibernate配置详解 #### 一、编写目的 本文档旨在详细介绍如何通过Spring、Hibernate和Jersey这三个框架来构建一个RESTful Web服务。文章不仅覆盖了基础的环境配置,还包括了如何搭建框架、配置...

    考试类精品--online-exam-backend是一个在线考试系统的后端模块。基于Jersey+Spring实现.zip

    《在线考试系统后端开发详解——基于Jersey+Spring架构》 在线考试系统是现代教育技术发展的重要组成部分,它能够高效、便捷地进行知识测评,为教学管理提供数据支持。本篇文章将深入探讨"online-exam-backend"这个...

    maven(jersey+redis+mongodb+spring)集成

    【标题】:“maven(jersey+redis+mongodb+spring)集成” 在现代软件开发中,集成多种技术栈是常见的需求。"maven(jersey+redis+mongodb+spring)集成"指的是使用Maven作为项目构建工具,将Jersey用于RESTful API开发...

    Jersey+Spring集成,后台接受或返回Json数据

    在Java世界中,Jersey和Spring是两个非常重要的框架,它们分别用于构建RESTful Web服务和企业级应用程序。本文将详细介绍如何将Jersey与Spring进行集成,以便在后台处理JSON数据。我们将探讨以下知识点: 1. **...

    Jersey+Spring:解决Jersey单实例问题

    然而,无论采用哪种方式,集成 Spring 和 Jersey 都可以有效地解决 Jersey 单例带来的线程安全问题,确保服务的线程安全性,提升系统的稳定性和可靠性。同时,Spring 还提供了其他优势,比如依赖注入、AOP(面向切面...

    jersey和jersey+spring的demo

    下载后里面的target目录下有war包,可以直接放在tomcat下运行。 项目使用Intellij Idea 14 创建。 http://localhost:8080/rest/helloWorld/a 单独的jersey...http://localhost:8080/rest/demo/hello 集成spring的jersey

    Jersey2.1+mysql+Hibernate4.3+Spring3.2

    【标题】"Jersey2.1+mysql+Hibernate4.3+Spring3.2" 描述了一个集成开发环境,该环境结合了四个关键的技术组件,用于构建基于RESTful Web服务的Java应用程序。让我们深入探讨每个组件及其在项目中的作用。 **Jersey...

    extjs+jersey+spring+jpa Security 安全验证

    一个简单的 安全验证的dome 自己看配置文件 在mysql下建库 自动生成表 添加好权限 权限表 role 内容最少如下 id name value 1 admin ROLE_ADMIN 2 user ROLE_USER value值必须以ROLE_开头 配置好 用户与 权限边的...

    app后台服务Demo(jdk7+tomcat7+maven+jersey+mybatis+spring+jackson)

    标题中的"app后台服务Demo(jdk7+tomcat7+maven+jersey+mybatis+spring+jackson)"是一个示例项目,它展示了如何构建一个基于Java的后端服务。这个项目利用了一系列流行的开源技术,包括Java 7 (JDK7)、Tomcat 7作为...

    java应用程序实现jetty 集成jersey 和spring

    Java应用程序实现Jetty集成Jersey和Spring是一项常见的技术任务,涉及到三个关键组件:Jetty(一个轻量级的HTTP服务器和Servlet容器),Jersey(一个用于实现RESTful Web服务的Java框架),以及Spring(一个全面的...

Global site tag (gtag.js) - Google Analytics