@Path注解

最近用到的一个项目,看到Controller控制层、Method方法都是通篇的@Path注解,由于之前并没有使用过该注解,故记此篇。

首先看一下项目中的使用方式:

@Path("clientWeb")
public class ClientWeb {

    @POST
    @Path("/getData")
    public String getData(@QueryParam("start") Integer start,@QueryParam("limit") Integer limit) {
        return "xxx"
    }
}

如上我们可以看到,@Path注解可以标记在类名之上,也可以标记在方法名上。该注解接收一个value参数,表示定义资源的地址。

另外,资源地址相同,但是HTTP方法不同的两个方法是完全两个不同的REST接口,HTTP方法和资源地址相结合在一起才可以完成对一个资源的定位。

点进@Path注解后查看其源码如下:

package javax.ws.rs;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPEElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Path {
    String value();
}

我们可以发现其属于 javax.ws.rs 包,java.ws.rsjax-rs 规范中定义的包名,什么鬼?

jax-rs 全称是:java API for RESTful Services,这是一套规范,规范文档。

简单点说就是这套规范是为构建restful服务的 [restful可以理解为web接口],我们知道Spring自带了对restful的支持,但是呢,Spring并没有遵循这个协议,言外之意就是不具有移植特性,怎么讲?

举例:JPA大家应该了解吧,采用JPA开发规范的话,很容易实现MysqlOracle等数据库的迁移,因为符合规范。

尽管Spring并不遵循这个协议,但还是Spring好用。

再回到jax-rs,目前能够实现jax-rs标准的框架有很多,比如:

  • Apache CXF,开源的Web服务框架。
  • Jersey, 由Sun提供的JAX-RS的参考实现。
  • RESTEasy,JBoss的实现。
  • Restlet,由Jerome Louvel和Dave Pawson开发,是最早的REST框架,先于JAX-RS出现。
  • Apache Wink,一个Apache软件基金会孵化器中的项目,其服务模块实现JAX-RS规范。

说这么多,其实是想get一点,就是在当下都用Spring的环境下,还是有许多可以实现web服务的,重新再来看@Path吧。

@Path就当@RequestMapping来用,如下所例。

@Path("/clientWeb")
public class  ClientWeb{    
    @GET    
    @Path("/getData")
    public String getData(String params) {
        return “xxx";
    }
}

访问路径为:http://:/<应用域>/clientWeb/getData

参考:https://segmentfault.com/q/1010000002484009/a-1020000002484552


我创建了一个用来记录自己学习之路的公众号,感兴趣的小伙伴可以关注一下微信公众号:niceyoo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS的SVN

1、cornerstone2、smart svn mac &#xff08;比较好用&#xff09;3、还xcode自带的。转载于:https://www.cnblogs.com/YangBinChina/p/8971148.html

导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件...

小程序导入&#xff0c;别人导出的数据库json文件&#xff0c;错误信息如下&#xff1a; 导入数据库失败, Error: Poll error, 导入数据任务&#xff08;id:373985&#xff09;异常&#xff0c;错误信息&#xff1a;解析导入文件错误&#xff0c;请检查导入文件内容&#xff0c…

ArrayList与String[]

不逼自己一把&#xff0c;你永远不知道什么是绝望。 今天被初学java的朋友问到了String[]跟ArrayList是不是有关系呢&#xff1f; 猜测是名称之间的联想&#xff0c;记此篇解惑。 Array英语单词里是数组、阵列的意思&#xff0c;在java中数组是这样定义的&#xff1a;一组相关类…

WebStorm取消默认style样式折叠

WebStorm取消默认style样式折叠&#xff1a; File--->Settings打开一个窗口 Edit--->CodeFolding 把HTML style attribute的前面的钩去掉[取消勾选] 右下角点击Apply--->ok

Vue中的computed属性

1、前言 本篇是Vue中最常用到的API之一computed属性&#xff0c;转载信息如下&#xff1a; 作者&#xff1a;gunelark链接&#xff1a;https://www.cnblogs.com/gunelark/p/8492468.html 2、正文 看了网上很多资料&#xff0c;对vue的computed讲解自己看的都不是很清晰&#xf…

订单管理系统(含源码)

本文demo下载和教学视频地址&#xff1a;http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId1077 实例使用PhpMySqlhtmlcss技术实现了订单管理系统, 系统可以分为多个角色进行登录操作, 每个角色分别对应相应的功能, 实例中介绍了一个强大的工具phpStudy&a…

工作305:对选择的数值清空

<template><div><!--选择账号 选择账号的具体页面 选择添加账号--><el-button icon"el-icon-plus" size"medium" click"open" :disabled"viewMode">添加账号</el-button><!--title表示标题 close表示…

Spring和SpringMVC总结篇

作者&#xff1a;肥宅兜链接&#xff1a;https://www.cnblogs.com/doudouxiaoye/p/5693399.html 1.为什么使用Spring ? 方便解耦&#xff0c;简化开发;通过Spring提供的IoC容器&#xff0c;可以将对象之间的依赖关系交由Spring进行控制&#xff0c;避免硬编码所造成的过度程序…

Python3爬虫(十一) 爬虫与反爬虫

Infi-chu: http://www.cnblogs.com/Infi-chu/ 一、重要概念 二、爬虫反爬虫进化论 转载于:https://www.cnblogs.com/Infi-chu/p/8981537.html

配置Maven环境变量-Eclipse/Idea添加Maven

1. 文件下载 官网下载地址&#xff1a;http://maven.apache.org/download.cgi 下方有我提供的下载链接。 由于下载缓慢&#xff0c;提供一份我的下载链接&#xff1a;https://www.lanzous.com/i7v2ryb 2. 解压文件 3. 环境变量 3.1、新建环境变量&#xff0c;如下所示&#xff…

HTML第二课——css

请关注公众号&#xff1a;自动化测试实战 先给大家提个建议&#xff0c;就是用sublime编辑器来编写。用其他的也无所谓&#xff0c;我只是建议&#xff0c;因为这个会帮你自动补全很多代码。 css概念 css叫层叠样式表。意思就是一层一层的叠加。作用就是让页面中的可视化标签变…

工作306:.sync解决子组件改变自身值 父组件也改变自身数值

Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-

修改MyEclipse/Eclipse左侧文字大小(MacOS/Windows)

一、Windows 首先找到 Eclipse/MyEclipse 的安装目录&#xff0c;然后找到如下目录&#xff1a; \plugins\org.eclipse.ui.themes_1.1.200.v20160815-0536\css\e4_basestyle.css 修改此 css 文件&#xff0c;添加如下内容&#xff1a; CTabFolder Tree{ font-size: 12px;} 二…

Kubernetes tutorial - K8S 官方入门教程

tutorials 教程 kubectl 的命令手册 1 Creating a Cluster 1.1 Using Minikube to Create a Cluster Kubernetes Clusters Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes all…

uniapp增加百度统计代码(h5)

做了个微信公众号文章互相阅读的h5界面&#xff0c;http://mptask.wintp.top/&#xff08;只能微信浏览器打开&#xff09;&#xff0c;其中用到了统计代码&#xff0c;记录如下。 1、新建 tj.html 界面 可放置在项目的根目录&#xff0c;文件名称根据自己情况命名。 2、粘贴内…

前端学习(2847):css鼠标样式

<html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>css鼠标样式</title></head><body><a href"####" style"cursor:pointer">hello world1<…

前端学习(2848):鼠标点击事件

<< 一起来做秒杀活动 >>一、分类 一般事件 页面相关事件 表单相关事件 滚动字幕事件 编辑事件 外部事件二、常用事件 示例 onclick onmouseover onmouseout onkeydown onerror onloadonsubmit onblur onfocus

2019年终总结-2020展望「持续更新至31号」

粗略的统计了一下&#xff0c;2019 在博客园发布了约 140 篇文章&#xff0c;写文章有一段时间了&#xff0c;最开始的初衷就是记录自己平时开发遇到的 Bug&#xff0c;能更快捷的调取笔记&#xff1b; 写着写着&#xff0c;迎来了第 52 个关注者… 2019 或许是自己最艰难的一年…

前端学习(2849):简单秒杀学习之浮动

1浮动和不浮动 2下移和卡住 3环绕 4清除浮动 5浮动实际应用