1、在项目的pom.xml中引入相关依赖
<dependency><!--添加Swagger依赖 --> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- swagger-bootstrap-ui增强ui --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.4</version> </dependency>
2、创建MvcConfig和SwaggerConfig配置类
创建MvcConfig.java
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; /** * @Author: leevy * @Date: 2021/7/3 14:40 * @Description: 配置静态资源,避免静态资源请求被拦截 */ public class MvcConfig extends WebMvcConfigurationSupport { public void addResourceHandlers(ResourceHandlerRegistry registry) { //如果静态文件放到了classpath 下,就如下配置。 registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); /*放行swagger*/ // registry.addResourceHandler("swagger-ui.html") // .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); super.addResourceHandlers(registry); } }
创建SwaggerConfig.java类
import io.swagger.annotations.ApiOperation; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * @Author: leevy * @Date: 2021/7/3 13:29 * @Description: Swaager API文档配置 */ @Configuration @EnableSwagger2 @ConditionalOnProperty(name = "swagger.enable", havingValue = "true") public class SwaggerConfig extends WebMvcConfigurerAdapter { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //使用了 @ApiOperation 注解的方法生成api接口文档 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } // 构建 api文档的详细信息函数,注意这里的注解引用的是哪个 private ApiInfo apiInfo() { return new ApiInfoBuilder() // 页面标题 .title("系统名称_接口文档") .termsOfServiceUrl("http://localhost:9090/") // 版本号 .version("1.0") // 描述 .description("描述:用于系统名称信息,具体包括\n" + "A模块、\n" + "B模块、\n" + "以及C模块。") .build(); } }
3、在配置文件中添加步骤2中用的系统参数
swagger.enable=true或swagger.enable=false
由于项目是多环境配置,一般开发和测试环境是true,生产环境是false。
4、启动项目,验证是否集成成功
http://localhost:9090/doc.html
如上图所示,说明集成成功!