java web服务之RESTful需要知道的annotation

Jersey框架和springmvc框架 前言: Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层。 与springmvc 的区别: 1. jersey同样提供DI,是由glassfish hk2实现,也就是说,如果想单独使用jersey一套,需要另外学习Bean容器; 2. MVC出发点即是WEB,但jersey出发点确实RESTFull,体现点在与接口的设计方面, 如MVC返回复杂结构需要使用ModelAndView,而jersey仅仅需要返回一个流或者文 阅读详情


为了响应应用的请求,服务端需要提供一些资源,称之为资源类(Resource class)。

对每一个资源类,可以使用以下annotation来对资源类进行设置:

1、javax.ws.rs.ApplicationPath:是配置整个应用的一个路径,如果发布在一个servlet container里面的话,在web.xml的servlet-mapping覆盖            

<servlet>
  <servlet-name>restservlet</servlet-name>
  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>restservlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
</servlet-mapping>

2、javax.ws.rs.Path:若果未配置将出现如下异常:The ResourceConfig instance does not contain any root resource classes,这亦是一个资源对外界的访问入口http://xxx.xx.services/gateway。


3、javax.ws.rs.consumes;定义资源类或MessageBodyReader方法所能接收的媒体类型,若未指定,container将默认可接受任何类型媒体。container负责保证唤醒的方法能够接收HTTP 请求实体主题,如果没有方法可用,按照RFC2616规定一定要响应一个HTTP“415 不支持媒体类型”。

     javax.ws.rs.produces;定义资源类或MessageBodyReader方法所能产生的媒体类型,若未指定,container将默认可产生任何类型媒体。container负责保证唤醒的方法能够接收HTTP 请求实体主题,如果没有方法可用,按照RFC2616规定一定要响应一个HTTP“406不接受”。

    如果是只响应单值的话是不需要显式设置的,container会根据产生的类型来响应。方法级注释覆盖一个类级别注释

4、javax.ws.rs.httpmethod:把一个注解和HTTP 方法关联起来

      javax.ws.rs.get:指明注释的方法响应HTTP GET请求

      javax.ws.rs.post:指明注释的方法响应HTTP POST请求

     javax.ws.rs.delete:指明注释的方法响应HTTP DELETE请求

     javax.ws.rs.put:指明注释的方法响应HTTP DELETE请求

     javax.ws.rs.head:指明注释的方法响应HTTP HEAD请求

    javax.ws.rs.option;指明注解的方法响应HTTP可选参数

5、javax.ws.rs.defaultparm:定义使用下面annotation绑定的request元数据的默认值

      javax.ws.rs.cookieparam:将HTTP cookie的值绑定到资源方法参数,资源类字段,或资源类bean属性

      javax.ws.rs.formparam:将HTTP 实体body中的表单元素的值绑定到资源方法参数,资源类字段,或资源类bean属性,值是通过URL解码

      javax.ws.rs.headerparam:将HTTP header绑定到资源方法参数,资源类字段,或资源类bean属性

      javax.ws.rs.matrixparam:将URI 参数矩阵绑定到资源方法参数,资源类字段,或资源类bean属性,值是通过URL解码

      javax.ws.rs.pathparam:将URI模板参数或路径段包含模板参数绑定到资源方法参数,资源类字段,或资源类bean属性

      javax.ws.rs.queryparm:将HTTP 查询参数绑定到资源方法参数,资源类字段,或资源类bean属性,值是通过URL解码

      javax.ws.rs.encode;URL编码


javax.ws.rs.core.context:该注释用于注入信息到类字段,bean属性或方法参数



Web Service核心解析:从SOAP到RESTful API的设计与Spring Boot实战 Web Service是软件系统间通过互联网进行标准化通信的核心技术,其核心价值在于实现跨平台、跨语言的互操作性。从技术原理上看,它主要遵循两种主流架构风格:基于XML协议栈、强调严谨规范的SOAP/WSDL,以及基于HTTP协议、以资源为中心的RESTful架构。在工程实践中,RESTful API因其轻量、高效和对Web友好的特性,已成为构建公开API、微服务通信和移动后端的首选方案。本文聚焦于使用Spring Boot框架快速实现一个健壮的RESTful Web Service,涵盖从API设计、统一 阅读详情

相关推荐

Java Restful服务实战:从设计原则到生产级配置

Restful是一种基于HTTP协议的资源建模与状态转移架构风格,其核心在于URI标识资源、动词表达操作、状态码传递语义。在Java生态中,Spring Boot通过@RestController、@PathVariable、ResponseEntity等组件将HTTP语义映射为可工程化的代码结构,但真实落地常因Jackson序列化规则、Spring MVC请求生命周期、Nginx反向代理透传等环节失配而引发400/406/500类问题。本文聚焦Java开发者高频踩坑场景,深入解析@RequestBody参

anjueci1221的博客 505

Web Service架构解析:从SOAP到RESTful API的演进与实践

Web Service作为实现跨平台、跨语言系统间通信的核心技术,其本质是通过标准化协议解决异构系统间的数据交换问题。其工作原理基于客户端-服务器架构,通过定义清晰的接口契约实现松耦合集成。在技术价值层面,Web Service显著提升了系统的互操作性和可维护性,成为企业应用集成和微服务架构的基础。随着技术演进,从早期的SOAP协议到当前主流的RESTful架构,Web Service不断适应新的开发范式。SOAP以其严格的XML格式和WS-*标准体系,在金融、电信等需要高安全性和可靠性的领域仍有应用;而R

464

一文说清Arduino如何实现舵机平滑转动(机器人场景)

深入讲解如何利用arduino控制舵机转动,实现机器人场景中的平稳运动。通过代码优化与脉冲宽度调节,让舵机动作更精准流畅,适用于各类自动化项目。

weixin_35706255的博客 897

javax.ws.rs-api 常用注解

javax.ws.rs-api 常用注解 WebService 文章目录javax.ws.rs-api 常用注解@Path@GET @POST @PUT @DELETE@Consumes示例@Produces示例@PathParam示例@QueryParam示例@FormParam示例@FormDataParam@HeaderParam示例@CookieParam@MatrixParam示例@DefaultValue示...

七乘563的博客 3万+

基于 Node.js + MongoDB 技术栈的小众开源短链接程序 —— Lynx

开源的短链接程序有很多,像 YOURLS、Shlink 等大多采用 PHP + MySQL 技术栈。但我之前的服务器配置一般,再加上自己写的小玩具使用的是 Node.js + MongoDB,这些环境已经装在服务器上了,因此更倾向于寻找一款同样基于这套技术栈的短链接程序。搜索了很久才找到这么一款基于的短链接程序——Lynx。这个开源项目非常小众,Star 数只有两百多。

zc_mk的博客 826

机械臂学习:视觉引导——绪论

视觉引导 = 定位 + 引导定位:视觉系统定位到待引导的物体引导:视觉系统引导机械臂按需要的轨迹实现一定的工艺流程(过度点:人为指定机械臂的轨迹防止碰撞)(点云匹配:解决位姿估计姿态估计的问题)无序抓取的三个核心技术:3d识别(图中的点云匹配) 抓取方法路径规划(防止机械臂的碰撞,如自身碰撞等)如果只有同一高度的平移和旋转,其实并不需要点云,用单目就可以做,但是如果涉及到物体的倾斜以及高度的变换,那就是单目力所不能及,所以就是第三种情况:平移旋转加垫高。

2303_80018785的博客 4041

rest注解说明及使用示例(java)

1.常用API介绍 1.1 javax.ws.rs包(用于创建RESTful服务资源的高级接口和注解) 1.1.1 统一接口 JAX-RS使用@javax.ws.rs.POST 、@javax.ws.rs.GET 、@javax.ws.rs.PUT、@javax.ws.rs.DELETE四个注解代表了对资源的CRUD(Create, Retrieve, Update, Delete)操作。

alane1986的专栏 7390

超详细 | 贝叶斯网络基础——有图有真相

Hello,大家好,我是starz。这是本系列的第二篇《概率基础Ⅱ》,虽说是概率基础,但作为过渡,它开始以图为载体 这节的主要内容有: 贝叶斯网络 三种结构 D-划分 贝叶斯球 马尔科夫毯 应用例子 总结 让我们开始吧 :3 贝叶斯网络 概率图模型可笼统分为两类,一是基于无向图的马尔科夫网络: 二是基于有向图的贝叶斯...

qq_41603411的博客 2万+

java 取得rs长度,java – 如何在JAX-RS方法中获取POST参数?

在通过POST提交的表单中,电子邮件不是像/sendemail?email=me@example.com一样的@QueryParam。如果您通过POST提交HTML表单,电子邮件是一个@FormParam。编辑:这是一个可以处理您的HTML表单的最小JAX-RS资源。package rest;import javax.ws.rs.FormParam;import javax.ws.rs.POST;...

weixin_33316599的博客 464

车规SoC深度对比:高通8397 vs 比亚迪D9000 vs 联发科CT-X1/MT8676/MT2715

芯片优势弱势最适合场景高通 8397低功耗、低延迟AI和音频处理单屏算力略低HUD + 音响座舱 + 低延迟交互D9000多屏渲染、Wi-Fi7高速通信AI算力中等高端多屏座舱 + 流媒体娱乐CT-X1极高AI算力、多模态渲染功耗较高高端沉浸式智能座舱 + 多摄像头感知MT8676算力均衡、座舱应用全面GPU稍弱全栈智能座舱、音视频多任务MT2715成本低、入门座舱可用算力低,低端显示入门智能座舱、基础信息娱乐。

weixin_43199439的博客 1767

Openlayers 教程 02 - 地图添加 WKT WKB GeoJson 格式的点线面数据

WebGIS 开发中,对于数据量不是很大的场景,可以直接从数据库读取数据,通过创建点线面要素(Feature),然后添加到矢量图层(vectorLayer)中,在地图上展示。添加点线面的方法可以封装一下,方便使用。...

非科班Java出身GISer的博客 3854

Jersey中的常用注解总结

@GET:该注解标记的方法表明用于处理GET请求,GET方法是幂等且安全的。 @POST:该注解标记的方法表明处理POST请求,POST方法表明是一种创建操作的方法,POST方法是一种写操作的HTTP请求,RPC中的写操作均是使用post方法,而在REST中我们只是使用POST方法来添加资源。 @DELETE:该注解标记的方法表明这个方法执行的是一个删除资源的操作,其返回值可以是void...

weixin_30364325的博客 311

从自然语言到PCB设计:DeepSeek与Altium协同自动化实战指南

摘要:在电子设计领域,将自然语言需求转化为PCB设计图是实现自动化设计的重要目标。受限于当前NLP和EDA技术,通过DeepSeek直接生成完整PCB设计图尚无法实现,但在设计辅助环节已展现实用价值。本文深入分析技术可行性,提出"自然语言→设计约束→脚本生成→人工验证"的人机协同工作流。通过28个完整代码示例、12张技术图表及5个工程案例,详细展示DeepSeek解析需求、生成设计约束,并结合Altium Designer API实现元件放置、规则设置、DRC校验的全流程。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1759

Spring RESTful Web服务中的异常处理

1.简介 我们可能已经在Spring中遇到了几种处理RESTful Web服务应用程序中异常的方法。 在本文中,我们将尝试探索可以采取的最佳方法来实现有效的异常处理。 2.问题陈述 让我们创建一个简单的应用程序,该应用程序将在REST URI中标识员工姓名。 如果请求中提供的员工名称是数字,则让我们的应用程序引发一个自定义异常,该异常将通过Exception Handlers处理 ,并相...

最佳 Java 编程 293

PGM-Explainer实验总结

PGM-Explainer建立了一个概率图模型,为GNN提供实例级解释。 论文标题:PGM-Explainer: Probabilistic Graphical Model Explanations for Graph Neural Networks 论文地址:2010.05788.pdf (arxiv.org) PGM-Explainer实验 实验目的 研究PGM-Explainer的有效性 实验方案 合成数据集的节点分类 与其他解释器做对比实验 使用六个合成数据集。 每个输入图都是一个

笔记|思路|总结 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java端RESTful web services的几种实现方式

1)      利用JAX-WS的Dispatch/Provider对   在JAX-WS中,我们可以跳过SOAP栈的处理,直接调用Service Endpoint,这样我们就可以传输POX(Raw xml)或者JSON给Service Endpoint处理,并可以通过MessageContext拿到HTTP method,从而进行判断,调用不同的逻辑。需要注意的是将Endpoint的@WebS

Baple的专栏 7127

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java API for RESTful Web Services 2.1发布

Java API for RESTful Web Services JAX-RS 2.1于本周发布。据Oracle技术小组首席成员及JSR规范牵头人Santiago Pericas-Geertsen介绍,JAX-RS 2.1中包括对服务器发送事件(SSE,Server-Sent Event)和JSON-B的支持,并改进了对JSON-P的支持。该API给出了对客户端API的响应式扩展,内建了对Jav...

cpongo5 91

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

maven构建web项目pom.xml build_Spring Boot快速入门之(十一):构建 RESTful Web 服务

【注】本文译自: https://www.tutorialspoint.com/spring_boot/spring_boot_building_restful_web_services.htm Spring Boot 提供了构建企业应用中 RESTful Web 服务的极佳支持。本文为你详解如何使用 Spring Boot 构建 RESTful web 服务。注意:要构建 RESTful Web...

weixin_39630247的博客 276

如何在 Java 上使用 JAX-RS (RESTful 风格的 Web Services)

By Jakub Podlesak and Paul Sandoz 翻译 CP 这篇技术文章将为你展示如何在 Java 上使用 JAX-RS: Java API for RESTful Web Services (JSR-311)  和它的参考实现 - Jersey 来编写 RESTful 风格的 Web Services。你可以学习到一些 Representational State Tr

u011011510的专栏 355

使用SpringMVC4构建Restful服务

使用Spring MVC 4构建RESTful服务相对于其它框架来说,有很多优势。首先,Spring MVC 4作为Spring的框架之一,可以很好地与Spring进行集成。其次,Spring MVC 4的拦截器是在方法层级上的拦截,相对于其它MVC框架(如Struts2)的拦截器具有更高的效率。再者,Spring MVC 4采用基于注解的配置,入手容易,开发灵活。     Sp

coldh的专栏 3242

Java restful xml_spring mvc实现Restful返回xml格式数据

最近,想在自己的小项目中搭建一个Restful风格的服务接口api,项目用的spring mvc 3,听说spring mvc本身就能十分方便的支持restful的实现,于是查询了下资料,果然非常强大。在一次偶然的#墙#外#(你懂的)状态下浏览到了一个老外的博客,举了几个入门例子十分经典,原文是E文+被墙状态,觉得有必要扒过来收藏学习下。在本示例中,我们将向您展示如何将对象转换成xml格式并通过s...

weixin_34698121的博客 217

resourse rest java_java – 使用RepositoryRestResource注释来更改RESTful端点不工作

我是春天开机的新手.我正在尝试创建也插入MongoDB的RESTful Web服务.一切都可以正常工作,除此之外,指导说明.package hello.requests;import java.util.List;import org.springframework.data.mongodb.repository.MongoRepository;import org.springframework...

weixin_29920047的博客 512

java restful返回json_Spring mvc实现Restful返回json格式数据实例详解

在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。使用技术及环境:spring 3.2.2.releasejackson 1.9.10jdk 1.6eclipse 3.6maven 3ps:在spring 3 中,要输出json数据,只需要添加jackson 库到你的classpath。1、项目依赖spring和jackson的依赖:xmlns:xsi...

weixin_31879641的博客 411

RESTful Demo

Demo 功能 两个模块, App 与 Admin, App 模块提供增加用户(/add?name=${name})与查询用户(/query/${id}), Admin 模块提供列出所有用户(/listAllUser), 用户共有两个属性, id(由系统自动分配) 与 name(由增加用户时的 name 参数提供) 编码 项目基础配置 开发环境为 IDEA ULTIMATE 2018.3...

weixin_30411239的博客 478

八、RESTful案例

会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。我们使用SpringMVC时,尤其是刚刚开始学习使用,经常会跟官方文档学。那么到底他做了什么?

weixin_44063529的博客 1106
上一篇: 四、重温数据结构之外部排序
下一篇: log4j日志系统使用记录
SpaceXFalcon9
博客等级 码龄16年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值