关于@GetMapping和@GetMapping(value=““)的区别

@GetMapping和@GetMapping(value=““)区别

背景

初期对于@GetMapping的理解比较简单,以为给什么路由就走什么路由。后来查看资料后有了更进一步的认识,特此纪要!

问题

@GetMapping和@GetMapping(value=““)的区别是什么?

说明

1.@GetMapping的标准语法是有Value的。

2.如果@GetMapping没有指定Value出现了一次,那当前的Control中有且就只能存在这样的一个空Value的@GetMapping。否则会编译报错。

3.当有一个路由指向了当前的Control,并且到了Control的路由就结束了指向,没有更进一步Handle寻找,此时如果存在这样一个空的Value路由,则会默认指向。

4.对于有具体Mapping路由的则返回对应的路由数据,没有则404.

应用Demo

下面是一个根路径为/mrs的路由,在这个Control中有两个子路由,一个是空Value指向的getStr的接口,另一个是/getStrName。

关于@GetMapping和@GetMapping(value=““)的区别_第1张图片

此时如果你访问的路由地址指向这个@GetMapping的上级路径,而且到这儿就结束了。此时系统会默认指向这个空Value的接口。

如果正常的路由指向,则会正常返回对应的Handler。

初识GetMapping("")使用方法

GetMapping("value = /SF/{x_num}")

GetMapping("/SF/{x_num}")

通过POSTMAN获得的值一样。

注意:

GetMapping("/SF/{x_num}")

内花括号的使用。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的