package com.yc.config; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 @EnableWebMvc @PropertySource(value = {"classpath:attachment.config.properties"},ignoreResourceNotFound = true) public class Swagger2Config { /** * 根据配置读取是否开启swagger文档,针对测试与生产环境采用不同的配置 */ @Autowired private Environment env; @Bean public Docket createAPPV2Docket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(Boolean.parseBoolean(env.getProperty("swagger.enable"))) .groupName("APPV2模块") .select() .apis(RequestHandlerSelectors.basePackage("com.yc.app.v2")) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//只显示添加@ApiOperation注解的接口 .paths(PathSelectors.any()) .build(); } @Bean public Docket createDemoDocket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(Boolean.parseBoolean(env.getProperty("swagger.enable"))) .groupName("演示模块") .select() .apis(RequestHandlerSelectors.basePackage("com.yc.app.demo")) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { Contact contact = new Contact("研发部", "", ""); return new ApiInfoBuilder() .title("巴士软件API文档") // .description("") .contact(contact) .version("1.0.0") .build(); } }