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/572750/

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

(0)

大家都在看

  • CSDN博客迁移至博客园

    CSDN博客迁移 由于早期在csdn中自定义了博客域名地址Xc_xdd,后期由于csdn由于我的id名称涉及政治敏感,未提前告知用户,且不给id修改机会。将我博客永久封禁,不可解封…

    Java 2023年6月8日
    067
  • 编程入门之日志聚合系统

    (关心具体部署的同学,可以移步我的另外一篇《Centos部署Loki日志聚合系统 》https://www.cnblogs.com/uncleguo/p/15975647.html…

    Java 2023年6月15日
    070
  • SQL函数FIND_IN_SET的使用

    可用于查询以逗号分隔开的数据 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) select FIND_IN_SET(‘2&#8…

    Java 2023年6月9日
    064
  • java用URL下载内容

    package Kuang; import java.io.FileOutputStream; import java.io.IOException; import java.io…

    Java 2023年6月5日
    085
  • Vue 多环境配置

    settings.js config/index.js vue main.js Original: https://www.cnblogs.com/vipsoft/p/166966…

    Java 2023年6月14日
    076
  • 小众网站

    AI音乐推荐 https://www.gnoosic.com/faves.phpRAP https://foreignrap.com壁纸 https://wallhaven.cc/…

    Java 2023年6月5日
    083
  • MySQL常用知识点梳理

    删表 DROP TABLE IF EXISTS 表名; 新建表create table 表名(字段名 类型 约束(逐渐,非空,唯一 ,默认值),字段名 类型 约束(逐渐,非空,唯一…

    Java 2023年6月16日
    061
  • java —— 异步任务失败后处理

    场景: 实际项目中,程序操作出了问题,后续要怎么处理是个很重要的问题,如果这个问题是同步操作引起的解决起来比较简单,比如用户注册,如果系统注册失败,后台可以马上返回错误信息,用户也…

    Java 2023年5月29日
    086
  • SpringBoot下使用AOP做日志

    AOP实现接口执行时间的计算: SpringBoot项目导入spring-boot-starter-aop依赖 编写切面类 类上加@Aspect注解,表明这是一个切面类 类上加@C…

    Java 2023年6月6日
    071
  • Redis 安装与使用

    NoSQL 1. 定义 NoSQL(Not Only SQL)即不仅仅是 SQL,泛指非关系型的数据库 2. 为什么使用 NoSQL? 传统关系数据库在应付动态网站、特别是超大规模…

    Java 2023年6月8日
    085
  • web开发技术-过滤器

    纪录自己的学习过程,帮助记忆 1、简介 过滤器是服务器端的一个组件,可以接收用户端的请求和响应信息,并且对这些信息进行过滤 过滤器不处理结果,只做一些辅助性操作 2、过滤器的工作原…

    Java 2023年6月13日
    092
  • Logstash 入门实战(2)–安装及使用

    本文主要介绍 Logstash 的安装及简单的使用,相关的环境及软件信息如下:CentOS 7.9、Logstash 8.2.2、Elasticsearch 8.2.2。 1、安装…

    Java 2023年6月16日
    066
  • Spring bean生命周期

    •Spring IOC 容器可以管理 Bean 的生命周期,Spring 允许在 Bean 生命周期的特定点执行定制的任务. •Spring IOC 容器对 Bean的生命周期进行…

    Java 2023年5月30日
    058
  • 兹瓷查rank和kth的STL平衡树

    兹瓷查rank和kth的STL平衡树 明天就是一轮省选了啊。。这可能是退役前的最后一篇博文了吧(如果心情不好怕是连游记都会咕) 众周所知stl中有一个依靠红黑树实现的nb数据结构-…

    Java 2023年5月30日
    070
  • Java 顺序查找 二分查找

    查找 在 Java 中我们常用的查找有两种: 顺序查找 即:有一个数组/数列 {“a”, “b”, “c”, “d”} 我们从键盘中输入任意一个 与数组类型相同的值,然后循环遍历这…

    Java 2023年6月5日
    0202
  • 力扣算法题1.两数之和(Java)

    力扣算法题1.两数之和(Java) 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标…

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