Springboot 集成swagger,配置Swagger 扫描接口

什么是swagger?
自己号称为世界上最流行的Api框架
ReatFul Api 文档在线生成工具=》 Api 文档与Api 定义同步更新
直接运行,可以在线测试Api 接口
支持多种语言
官网
https://swagger.io/
在这里插入图片描述

如何在项目中使用 Swagger
导入依赖

     <!--swagger 依赖 -->
        <dependency>
         <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>

        </dependency>
        <dependency>

        <groupId>io.springfox</groupId>

        <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

先键一个Spring boot 的项目
在这里插入图片描述
简单的hello 程序

package com.jj.demo.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    
    @RequestMapping("/hello")
    public String hello(){
    
    
        return "hello,swagger!";
    }
}

配置Swagger 的配置文件
在这里插入图片描述
先简单的配置一下就可以访问到 swagger 的页面了

package com.jj.demo.config;

import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
//加入Swagger 的注解  ,开启
@EnableSwagger2
public class Swaggerconfig {
    
    
}

访问http://localhost:8080/swagger-ui.html在这里插入图片描述
如何修改成自己的名字

package com.jj.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
//加入Swagger 的注解  ,开启
@EnableSwagger2
public class Swaggerconfig {
    
    
//    配置Swagger 的 Docket 的bean 实例
    @Bean
    public Docket docket(){
    
    
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
    }
//    配置Swagger 信息
    private ApiInfo apiInfo(){
    
    
//        作者信息
        Contact contact = new Contact("娇娇", "", "[email protected]");
        return new ApiInfo(
                "娇娇的Api 文档","生而为人,务必善良","1.0","",contact,"","",new ArrayList<>()
        );
    }
}

效果
在这里插入图片描述
**配饰Swagger 扫描 **

//    配置Swagger 的 Docket 的bean 实例
    @Bean
    public Docket docket(){
    
    


        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
//        RequestHandlerSelectors 配置要扫描接口的方式
//                basePackage :指定要扫描的包
//                any() :扫描全部
//                none():不扫描
//                withClassAnnotation //扫描类上的注解,参数市一个注解的反射对象
//                withMethodAnnotation // 扫描方法上的注解
//                。paths()过滤什么路径
                .apis(RequestHandlerSelectors.basePackage("com.jj.demo.Controller"))
                .build()
                ;
    }

关闭开关
在这里插入图片描述
在这里插入图片描述
就会看到这个可爱的表情包!!
问题,如何只希望自己的Swagger 在生成环境中使用,在发布的时候不使用?
判断是不是生产环境 flag=false
注入enable (flag)
第一步
在这里插入图片描述在config 类里把需要的配置文件,发过来,先放参数。
在这里插入图片描述
然后调用方法,把测试的环境放到里面
在这里插入图片描述
在开启swagger 里把获取到的布尔值放到里面,因为他正好也需要的是一个布尔类型的。
在这里插入图片描述
效果
此刻我们开启的环境是dev 配置文件

spring.profiles.active=dev

启动项目
看到此刻的flag 是true
在这里插入图片描述
在这里插入图片描述
如何配置分组,以及配置多个分组
在这里插入图片描述
效果
在这里插入图片描述
如何配置多个分组,
在这里插入图片描述

几个常用的注解
实体类是public 我写错了!!!!!!!!!!11
在这里插入图片描述
在这里插入图片描述
效果
在这里插入图片描述
**ApiOperation 注释和ApiParam 注释 **

//    ApiOperation 接口,不是放在类上的,是方法上
    @ApiOperation("hello 的第二个控制类")
    @RequestMapping("/hello2")
//    参数的文档注释
    public String hello2(@ApiParam("用户名") String name){
    
    
        return "hello"+name;
    }

效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46937429/article/details/111704605