SpringBoot 影响URL访问路径的RequestMapping写法与context-path设置

上周尝试把SpringBoot项目以WAR包的形式部署到Tomcat, 在访问路径这个问题上遇到了问题并折腾了很久。问题解决之后,总结经验如下:

1. 类中的路径映射可以写得简单一点:(项目名是detect-mgr)

启动类的路径就用“/”,不用加项目名

@RequestMapping("/")
public class WebappApplication extends SpringBootServletInitializer {
    //...
}

其他Controller中的路径就直接写“/xxx”, 不用加项目名

@RequestMapping("/login") 
public class LoginCtrl {
    //...
}

2. 上述代码中的路径映射没有放项目名,访问的时候url就只能直接跟在端口后面。如果放项目名,则提示404.

http://localhost:8080/login

而更合理的url应该是在路径中体现项目名的:

http://localhost:8080/detect-mgr/login

为了把项目名放入url中使其看上去更合理,需要在application.properties文件中添加context-path设置:

SpringBoot 1.x的写法:server.context-path=/detect-mgr
SpringBoot 2.x的写法:server.servlet.context-path=/detect-mgr

参考:https://blog.csdn.net/Monster_WangXiaotu/article/details/104834339/

 

你可能感兴趣的:(web开发)