SpringBoot集成Knife4j提示404 Error Page及SpringBoot3.X使用Knife4j生成分模块接口
报错问题解释:
SpringBoot集成Knife4j时出现404 Error Page通常意味着Knife4j的接口文档页面无法正常访问。可能的原因包括:
- 路径不正确:访问的路径与Knife4j的默认路径不一致。
- 依赖未正确引入或版本不兼容:可能是缺少相关依赖,或者依赖版本与SpringBoot版本不兼容。
- 配置错误:可能是Swagger配置或Knife4j配置不正确。
解决方法:
- 确认访问路径:确保访问的路径是
/doc.html
或者是你自定义的接口文档路径。 - 检查依赖:确保已经正确引入了Knife4j的依赖,并检查是否有版本冲突。
- 检查配置:检查Swagger和Knife4j的配置是否正确,包括扫描的包路径、API信息等。
- 检查SpringBoot版本:确保SpringBoot版本与Knife4j版本兼容。
- 检查安全配置:如果有安全配置(如Spring Security),确保Knife4j的文档路径没有被拦截。
针对SpringBoot 3.X使用Knife4j生成分模块文档,确保Knife4j版本支持SpringBoot 3.X,并且在配置时指定模块名称,如下:
@Configuration
@EnableSwagger2WebMvc
public class SwaggerConfiguration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo())
.groupName("模块名"); // 指定模块名
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("示例API文档")
.description("这是一个示例API文档")
.version("1.0")
.build();
}
}
确保basePackage
中的包路径是正确的,并且在多模块项目中为每个模块配置不同的groupName
。
评论已关闭