package pers.sun.demo.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.core.env.Profiles; 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; import java.util.ArrayList; @Configuration @EnableSwagger2 //开启swagger public class SwaggerConfig { /** * 声明(或者说往spring容器中注册)一个Docket实例 * ===>所有的配置都在Docket对象中设置 */ @Bean public Docket docket(Environment environment){ //根据当前的开发环境决定是否开启swaggerUI,配合.enable(flag) Profiles profiles=Profiles.of("dev"); boolean flag=environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //更改默认的apiInfo信息 .groupName("Kouch") //分组名称,配置多个分组-其实就是定义多个Docket对象注册到spring容器,由spring托管 .enable(flag) .select() .apis(RequestHandlerSelectors.basePackage("")) //设定扫描接口的包basePackage(""),withClassAnnotation(RestController.class)) //.paths(PathSelectors.ant("")) //过滤某些访问路径下的接口eg:扫描一个controller下的 /hello/xxx路径下的接口 .build(); } /** * swagger配置: 1、基本信息 * 配置 swagegr的信息:apiInfo带参构造函数 */ private ApiInfo apiInfo(){ Contact contact=new Contact("Kouch", "", ""); //api编写的作者联系 return new ApiInfo( "数据综控API文档", "2020年暑期基于springboot框架LOL项目API文档", "1.0", "urn:tos", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList()); } /** * swagger配置: 2、分组 * 修改分组名称:.groupName("Kouch") ; * 配置多个分组:其实就是定义多个Docket对象注册到spring容器,由spring托管 */ /** * swagger配置: 3、接口扫描 * 指定swagger扫描某些controller定义的接口 * 在Docket实例(运行时注册)中修改(或者说过滤要扫描的接口) */ /** * swagger配置: 4 实体类扫描 * 只要在controller中返回值中有一个实体类(返回了一个实体类)swagger就会扫描到 * 在扫描的实体类文档中加入注释 * 在源码的实体类中加入注释:@ApiModel("中文解释")-类注释;@ApiModelProperty("中文解释")-类属性注释 */ /** * swagger配置: 5 加注释 * (1)在实体类中加注释 * @ApiModel("中文解释")-类注释;@ApiModelProperty("中文解释")-类属性注释 * (2)在接口方法(controller的某一个方法加史昂注释) * @ApiOperation("中文解释")-方法上加;@ApiParam("中文解释")-方法中的参数加注释 * (3)在controller类上加注解 * @@Api(tags = "中文解释") */ }
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>