引入jar包
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
编写配置信息类
package com.dzj.spack.framework.swagger;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "swagger")
public class Swagger {
/**
* 标题
*/
private String title;
/**
* 描述
*/
private String description;
/**
* 地址
*/
private String termsOfServiceUrl;
/**
* 版本
*/
private String version;
/**
* 扫描包
*/
private String basePackage;
}
编写配置类
package com.dzj.spack.framework.swagger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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 xiaojie
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Autowired
private Swagger swagger;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//是否开启 (true 开启 false隐藏。生产环境建议隐藏)
//.enable(false)
.select()
//扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
.apis(RequestHandlerSelectors.basePackage(swagger.getBasePackage()))
//指定路径处理PathSelectors.any()代表所有的路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//设置文档标题(API名称)
.title(swagger.getTitle())
//文档描述
.description(swagger.getDescription())
//服务条款URL
.termsOfServiceUrl(swagger.getTermsOfServiceUrl())
//版本号
.version(swagger.getVersion())
.build();
}
}
编写yml配置文件
#swagger配置
swagger:
# 标题
title: 接口文档
# 扫描包
base-package: com.dzj.spack
# 描述
description: 接口测试
# 地址
terms-of-service-url: http://localhost:8080/
# 版本
version: 1.0
编写测试接口
package com.dzj.spack.project.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class TestController {
@GetMapping("test")
@ResponseBody
public String test(){
return "请求成功";
}
}
启动项目后结果如下: