SpringBoot集成swagger2

本文介绍了在SpringBoot项目中集成swagger2的步骤,包括在pom文件添加依赖,编写Swagger配置启动类,Controller中使用注解以及通过特定访问路径测试和查看API文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot集成swagger2

此次集成是基于SpringBoot项目集成了MyBatis注解的情况下进行的

  1. 第一步: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>
  1. 第二步:编写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();
    }

}

  1. 第三步:在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);
    };
}

  1. 第四步:复制上面配置文件中的访问路径进行访问,访问成功!
    在这里插入图片描述
    集成结束!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值