package com.estate.expert.admin.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * Swagger配置类 */ @Configuration @EnableOpenApi // 使用OpenApi注解而不是Swagger2注解 public class SwaggerConfig implements WebMvcConfigurer { @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) // 使用OAS_30而不是SWAGGER_2 .apiInfo(apiInfo()) .select() // 扫描所有需要生成API文档的包路径 .apis(RequestHandlerSelectors.basePackage("com.estate.expert.admin.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("地产专家管理平台API文档") .description("地产专家管理平台的所有RESTful API接口文档") .version("1.0.0") .build(); } // 配置静态资源映射,确保Swagger UI资源可以正确访问 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // Springfox 3.0.0 Swagger UI资源映射 registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); } }