你为什么要尝试推出自己的解决方案。Spring-boot已经支持该功能。
如果你还没有,请向添加
application.properties文件
srcmainresources。在该属性文件中,添加2个属性:
server.contextPath=/mainstayserver.port=12378
更新(Spring Boot 2.0)
从Spring Boot 2.0开始(由于Spring MVC和Spring WebFlux的支持),contextPath将其更改为以下内容:
server.servlet.contextPath=/mainstay
然后,你可以删除自定义servlet容器的配置。如果需要在容器上进行一些后期处理,则可以
EmbeddedServletContainerCustomizer在配置中添加一个实现(例如,添加错误页面)。
基本上,
application.properties服务中的属性是默认属性,你始终可以通过
application.properties在交付的工件旁边使用另一个属性或添加JVM参数(-Dserver.port=6666)来覆盖它们。
该类
ServerProperties实现
EmbeddedServletContainerCustomizer。的默认
contextPath值为”“。在代码示例中,你
contextPath直接在上设置了
TomcatEmbeddedServletContainerFactory。接下来,ServerProperties实例将处理该实例,并将其从你的路径重置为”“。(此行进行null检查,但默认情况下”“总是失败,并将上下文设置为”“,从而覆盖你的上下文)。



