问题描述
在项目配置中添加了:spring.mvc.servlet.path=/project
所有请求URL都会加上/project前缀
但是swagger文档中请求URL不会带上前缀
解决方案:
/**
* application中还配置了mvc,因为springboot2.6.1与swagger3不兼容
* ture 启用Swagger3.0, false 禁用(生产环境要禁用)
*/
@Value("${swagger.enabled}")
private Boolean swaggerEnabled;
/**
* 请求地址前缀 /project
*/
@Value("${spring.mvc.servlet.path}")
private String path;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
//是否开启swagger
.enable(swaggerEnabled)
.select()
//扫描的路径使用@Api的controller
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
//指定路径处理PathSelectors.any()代表所有的路径
.paths(PathSelectors.any())
.build()
//请求URL都会加上/project前缀
.pathMapping(path);
}