SpringBoot-swagger

SpringBoot整合swagger

  1. SpringBoot-swagger

13.1 导入相关依赖


        io.springfox
        springfox-swagger-ui
        2.9.2

        io.springfox
        springfox-swagger2
        2.9.2

        org.springframework.boot
        spring-boot-starter-web

        org.springframework.boot
        spring-boot-starter-test
        test

13.2 编写Swagger配置类

文件路径:com–dzj-config–SwaggerConfig.java

@Configuration
@EnableSwagger2  //开启Swagger2
public class SwaggerConfig {
    // 配置swagger Docket的bean实例,可以配置多个
    @Bean
    public Docket docket(Environment environment) {

        //设置要显示的swagger环境
        Profiles profiles = Profiles.of("dev", "test");
        //通过environment.acceptsProfiles()判断当前环境是否处于设定的环境中
        boolean flag = environment.acceptsProfiles(profiles);
        System.out.println("当前测试环境--->" + flag);
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(flag) //是否启动Swagger,默认为true
                .groupName("dengzj")
                .select()
                /*
                    RequestHandlerSelectors,配置要扫描接口的方式
                    basePackage("com.dzj.controller"):指定要扫描的包
                    any():扫描所有
                    none():不扫描
                    withClassAnnotation(GetMapping.class):扫描类上的注解
                    withMethodAnnotation(GetMapping.class):扫描方法上的注解
                 */
                .apis(RequestHandlerSelectors.basePackage("com.dzj.controller"))
                //paths(PathSelectors.ant("/dzj/**")) 过滤请求的路径
                //.paths(PathSelectors.ant("/hello/**"))
                .build();
    }

    //配置Swagger信息,apiInfo
    private ApiInfo apiInfo() {
        Contact contact = new Contact("dengzj", "https://www.cnblogs.com/aadzj/", "aadzj@qq.com");
        return new ApiInfo(
                "Dengzj的SwaggerApi文档",
                "认真却不怂",
                "v1.0",
                "https://www.cnblogs.com/aadzj/",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }
    @Bean
    public Docket docket1() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("A");
    }

    @Bean
    public Docket docket2() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("B");
    }

    @Bean
    public Docket docket3() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("C");
    }
}

13.3 编写实体类

文件位置:com–dzj–pojo–User.java

@ApiModel("用户实体类")  //注释
public class User {

    @ApiModelProperty("用户名") //注释
    public String username;
    @ApiModelProperty("密码")  //注释
    public String password;

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

13.4 编写测试接口

文件位置:com–dzj–controller-HelloController.java

@Api(tags = "hello控制类")  //注释类名
@RestController
public class HelloController {

    @ApiOperation("hello接口")  //注释接口名
    @GetMapping(value = "/testHello")
    public String testHello() {
        return "hello";
    }

    // 只要我们接口中的返回值有实体类,它就会被扫描到swagger中
    @ApiOperation("扫描实体类测试接口")
    @PostMapping("/testUser")
    public User testUser() {
        return new User();
    }

    @ApiOperation("测试testRestful接口")
    @GetMapping("/testRestful/{username}")
    public String testRestful(@ApiParam("用户名") @PathVariable("username") String username) {
        return "username:" + username;
    }

    @ApiOperation("测试testPost接口")
    @PostMapping("/testPost")
    public User testPost(User user) {
        return user;
    }
}

13.5 编写配置文件

  • application.properties
spring.profiles.active=dev
  • application-dev.properties
  • application-pro.properties
  • application-test.properties

13.6 访问测试

访问路径: http://localhost:8080/swagger-ui.html

SpringBoot-swagger

接口以及实体类信息

SpringBoot-swagger

Original: https://www.cnblogs.com/aadzj/p/15636826.html
Author: 小公羊
Title: SpringBoot-swagger

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612321/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mobaxterm使用(类似xshell)

    网盘保存(链接:https://pan.baidu.com/s/1r_tx_eZ7zSUslLNNl5oOFw 提取码:fcc8) 主要功能 支持各种连接SSH,X11,RDP,V…

    Linux 2023年5月28日
    0103
  • CentOS 7 安装 mysql 5.7.27 for zabbix

    本文是因为需要安装zabbix系统,才贴出的此步骤,供自己查阅方便之用; 在安装使用zabbix前,需要先安装数据库,这里使用的是MySQL数据库进行部署,给出安装步骤,大家觉得有…

    Linux 2023年6月8日
    0102
  • IDM 下载器的安装和使用

    下载安装 为大家提供免注册版本:IDM下载器 – Dominic 的蓝奏云分享 下载解压之后,双击第一个文件进行安装 之后一路选择”Next”即…

    Linux 2023年6月8日
    0148
  • 单机简易版mapReduce 实现

    go;gutter:true;collapse:false import "fmt" import "6.824/mr" import &q…

    Linux 2023年6月7日
    0197
  • CVE-2020-3580漏洞复现

    一、前言 前段时间碰到了该漏洞,记录一下! 二、漏洞介绍 该漏洞为思科ASA设备和FTD设备的未授权反射型XSS漏洞,影响版本如下: Cisco ASA Software 9.6 …

    Linux 2023年6月8日
    0108
  • 数据转换-位串字节数组

    一、任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 1 参考《GMT 0009-2012 SM2密码算法使用规范》第6节”…

    Linux 2023年6月8日
    0109
  • select,poll,epoll的区别以及使用方法

    I/O多路复用是指:通过一种机制,可以 监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 原生socket客户端在与服务端建立连接时,…

    Linux 2023年6月14日
    0106
  • 网络安全简单入门与扫描

    网络安全简单入门 内容大纲 策略制定 安全工具 其他 1、安全策略 1.1、安全三要素 要全面地认识一个安全问题,我们有很多种办法,但首先要理解安全问题的组成属性。前人通过无数实践…

    Linux 2023年6月7日
    093
  • 我对二进制的理解

    理解进制的重要方法是类比我们熟知的十进制 10进制 一个正常的人类,拥有10根手指,每根手指代表1个信息,那么两双手掌便可表达10个信息。1, 2, 3, …, 10。…

    Linux 2023年6月7日
    059
  • IDEA生成带参数和返回值注释

    步骤说明 打开IDEA进入点击左上角 – 文件 – 设置 – 编辑器 – 活动模板 新建活动模板 填写模板文本 编辑变量 添加变量表…

    Linux 2023年6月6日
    0108
  • 堆栈

    目录: 9、【剑指Offer学习】【面试题09:用两个栈实现队列】 30、【剑指Offer学习】【面试题30:包含min函数的栈】 31、【剑指Offer学习】【面试题31:栈的压…

    Linux 2023年6月13日
    0112
  • docker使用

    什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体…

    Linux 2023年6月14日
    088
  • 新创建的Dajngo项目进入admin后台报错:OSError: [Errno 22] Invalid argument: ‘E:python_class_resorcepython笔记luffyluffy_api1:adminlogin.html’

    OSError: [Errno 22] Invalid argument: ‘E:\python_class_resorce\python\笔记\luffy\luffy…

    Linux 2023年6月14日
    0120
  • STP 指定端口 根端口 区别和理解

    不多说,先上图,A为指定端口,B为非指定端口。 看本文的网友应该知道根端口和指定端口的选举,但是对指定端口和根端口的理解不清楚。这里我就略过选举过程,直接描述这两者的区别和存在的意…

    Linux 2023年6月6日
    0141
  • 哨兵+redis主从部署架构-docker部署

    架构图 哨兵的介绍 sentinel , 中文是哨兵。 哨兵是redis 集群架构中非常重要的一个组件,主要功能如下: (1)集群监控:负责监控reidis master 和sla…

    Linux 2023年5月28日
    088
  • 数字图像处理

    1. 图像的基本概念 连续图像:二维坐标系上连续变化的图像,图像的像点无限稠密。 离散图像:用数字序列表示的图像,像素是组成图像的基本单位。 1.1 图像数字化采样 图像经过采样与…

    Linux 2023年6月14日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球