Spring Boot(Vaadin8)配置疑问:保留server.context-path,设置management base-path为/
解决Spring Boot管理端点脱离应用context-path的问题
我之前也碰到过类似的情况,你当前的配置没达到预期,核心原因是management.endpoint.web.base-path是**相对于server.context-path**的路径——哪怕你把它设为/,最终还是会自动拼接上/myApp前缀。
要让管理端点完全脱离应用的context-path、直接使用根路径,你需要用到另一个专门的配置项:management.server.base-path。这个配置独立于应用的server.context-path,专门用来指定管理端点的根路径。
修改你的application.yml配置如下:
server: context-path: /myApp management: server: base-path: / # 将管理端点的根路径直接设为/ endpoint: web: exposure: include: health, env # 按需暴露你需要的端点,默认仅暴露health
配置生效后,你的应用接口会依然保持在/myApp/**路径下,而管理端点则会直接使用根路径:
- 应用业务接口:
http://localhost:8080/myApp/xxx - 管理端点:
http://localhost:8080/health、http://localhost:8080/env
如果你的Spring Boot版本是2.0及以上,这个配置可以直接生效。另外需要注意:如果应用和管理端点使用同一个端口,要确保两者的路径不会冲突(比如你的应用里有没有根路径的接口);如果有冲突,可以考虑通过management.server.port给管理端点单独设置一个端口。
内容的提问来源于stack exchange,提问作者madmaux
相关产品推荐
相关产品推荐

