SpringBoot集成swagger2
此次集成是基于SpringBoot项目集成了MyBatis注解的情况下进行的
- 第一步:pom文件中引入swagger2相关jar包
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
- 第二步:编写Swagger配置启动类
package org.zs.system.config;
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;
@Configuration
@EnableSwagger2
public class Swagger2Config {
// swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 为当前包路径
.apis(RequestHandlerSelectors.basePackage("org.zs.system.controller"))
.paths(PathSelectors.any())
.build();
}
// 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 页面标题
.title("swagger-bootstrap-ui RESTful APIs")
// 描述
.description("swagger-bootstrap-ui")
//访问路径
.termsOfServiceUrl("http://localhost:端口号/swagger-ui.html")
// 创建人信息
.contact("developer@mail.com")
// 版本号
.version("1.0")
.build();
}
}
- 第三步:在Controller中模拟测试Swagger
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.zs.common.tool.api.R;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
/**
* @author auto code
* @since 2021-12-21
*/
@RequiredArgsConstructor
@RestController
@RequestMapping("/web/member")
@Api(value = "Controller",description = "XXX管理")
public class CargoMemberController {
@ApiOperation(value = "下载导入模板")
@GetMapping("/down")
R<Void> down(){
List<CargoMemberFile> list = Arrays.asList(CargoMemberFile.builder()
.name("测试数据,上传时请删除")
.deputy("测试数据,上传时请删除")
.phone("测试数据,上传时请删除")
.productType("测试数据,上传时请删除")
.initOrderNum("测试数据,上传时请删除")
.initAmount("测试数据,上传时请删除")
.initCost("测试数据,上传时请删除")
.build());
try {
ExportParams params = new ExportParams();
params.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(params, CargoMemberFile.class, new ArrayList<>(list));
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode("XXX导入模板.xlsx","UTF-8"));
@Cleanup ServletOutputStream ops = response.getOutputStream();
workbook.write(ops);
} catch (IOException e) {
e.printStackTrace();
}
return R.status(true);
};
}
- 第四步:复制上面配置文件中的访问路径进行访问,访问成功!
集成结束!