背景
初期对于@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的上级路径,而且到这儿就结束了。此时系统会默认指向这个空Value的接口。
如果正常的路由指向,则会正常返回对应的Handler。