当前位置: 首页 > news >正文

【SpringBoot】URL路径映射规则

正常的映射

@RestController  //指示该类为一个控制器类,用来处理Rest请求
@RequestMapping("/rest/xxx/sys") //类级别映射URL跟路径,只能用@RequestMapping
public class AccountController{
    @PostMapping(value = "/account/login") //响应该URL的post请求
    public RestRsp<AccountMO> login(@RequestBody AccountMO account)
    {
        return null;
    }

    @GetMapping(value = "/account/{id}") //响应该URL的Get请求
    public RestRsp<AccountMO> getById(@PathVariable String id)
    {
        return null;
    }

    @DeleteMapping(value = "/account/{id}") //响应该URL的Delete请求,与上面的URL相同,但请求方式不同,会被映射到相应的方法进行处理,不会出错
    public RestSimpleRsp deleteById(@PathVariable String id)
    {
        return null;
    }

    @PutMapping(value = "/account")
    public RestRsp<AccountMO> modify(@RequestBody AccountMO account)
    {
        return null;
    }

    @PostMapping(value = "/account")
    public RestRsp<AccountMO> add(@RequestBody AccountMO account)
    {
        return null;
    }

    @PostMapping(value = "/accounts")
    public RestRsp<AccountMO> getList(@RequestBody QueryParam queryParam)
    {
        return null;
    }
}

小结:

同样的URL,不同的Method(Get、Put、Post、Delete)会被映射到各自的方法上处理,这就是Rest的魅力,没必要为每种操作定义不同URL(以前只有Post和Get,是做不到的)

 

注意:

如上的Controller,如果做这样的扩展:

    @GetMapping(value = "/")
    public String test3()
    {
        return "test3:get:";
    }

访问/rest/test会报错404,而访问/rest/test/则正常,可以映射到test3方法。

 

错误映射的尝试

1、基于类级别的根URL需唯一,两个类映射到同样的URL是不允许的,SprintBoot启动时就会报错。

2、企图通过嵌套类去扩展URL是不可行的,编译不会报错,SprintBoot启动也没问题,但是访问URL时报404(Not Found)

如下图的代码,访问URL   /rest/test/2/haha/b 报404

 

转载于:https://www.cnblogs.com/njlittlecat/p/9575384.html

相关文章:

  • JavaScript DOM高级程序设计 3.6 实例 将HTML代码转换成DOM代码(附源码)--我要坚持到底!...
  • Java之多线程优先级基础
  • WCF应用场景
  • 基于Netty+Zookeeper+Quartz调度分析
  • 关于Execel 2007 连接到 hive odbc
  • 计算机网络
  • cocos2d-x游戏开发系列教程-超级玛丽06-CMGameScene
  • 使用pip命令报You are using pip version 9.0.3, however version 18.0 is available pip版本过期.解决方案...
  • JavaScript访问对象属性
  • Zeit.co 免费服务器平台
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • vue入门知识点
  • 微信公众平台 学习笔记(一)
  • 我的本科学习计划
  • Hibernate -- 操作持久化对象
  • C学习-枚举(九)
  • ES6核心特性
  • express如何解决request entity too large问题
  • java取消线程实例
  • JS字符串转数字方法总结
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • vagrant 添加本地 box 安装 laravel homestead
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 简单实现一个textarea自适应高度
  • 利用DataURL技术在网页上显示图片
  • 深度学习中的信息论知识详解
  • 使用putty远程连接linux
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 一天一个设计模式之JS实现——适配器模式
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • # Java NIO(一)FileChannel
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (4) PIVOT 和 UPIVOT 的使用
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (第27天)Oracle 数据泵转换分区表
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (万字长文)Spring的核心知识尽揽其中
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)项目管理杂谈-我所期望的新人
  • . Flume面试题
  • .bashrc在哪里,alias妙用
  • .bat批处理(一):@echo off
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net和php怎么连接,php和apache之间如何连接
  • .net解析传过来的xml_DOM4J解析XML文件
  • @NestedConfigurationProperty 注解用法
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • []sim300 GPRS数据收发程序
  • [20161214]如何确定dbid.txt