访问路径问题
http://localhost/a
http://localhost/a/
有什么不同
有以下三个类
c1
@RestController
@RequestMapping("/a/")
public class Test1Controller {
@RequestMapping(value = "",method = RequestMethod.GET)
public String test(){
return "/a/";
}
}
c2
@RestController
@RequestMapping("a")
public class Test2Controller {
@RequestMapping(value = "",method = RequestMethod.GET)
public String test(){
return "a";
}
}
c3
@RestController
@RequestMapping("/a")
public class Test3Controller {
@RequestMapping(value = "",method = RequestMethod.GET)
public String test(){
return "/a";
}
}
c1 和 c2 能同时存在
c1 和 c3 能同时存在
c2 和 c3 不能同时存在 ,to {[/a],methods=[GET]}: There is already ‘test2Controller’ bean method
说明c2 和c3 是一样的作用,即路径最前面会默认添加斜线的,后面的斜线是路径的一部分,即 http://127.0.0.1/a 和 http://127.0.0.1/a/ 是不一样的
有什么办法让三者同时存在 ?
如下:
@RestController
@RequestMapping("/")
public class Test4Controller {
@RequestMapping(value = {"/a","/a/","a"},method = RequestMethod.GET)
public String test(){
return "都实现了";
}
}
博客围绕访问路径问题展开,指出 http://localhost/a 和 http://localhost/a/ 不同,存在 c1、c2、c3 三个类,c1 与 c2、c1 与 c3 能共存,但 c2 和 c3 不能,原因是二者作用相同,路径默认添加斜线且斜线是路径一部分,最后提出让三者同时存在的疑问。
1610

被折叠的 条评论
为什么被折叠?



