其他分享
首页 > 其他分享> > swagger2

swagger2

作者:互联网

文章目录

swagger2

皆来自“狂神说Java”

swagger3有较大的变化
csdn-vip-详细版:https://blog.csdn.net/qq_15973399/article/details/107436089
免费-简易版:https://www.it610.com/article/1291227893636079616.htm

简介

使用

一个看源码的过程,源码里什么都有,缺什么补什么

导包

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

编写配置类

@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {


}

测试
在这里插入图片描述

配置基本显示的信息

@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {

    @Bean
    public Docket docket(){

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(
                        new ApiInfo(
                                "czc的Swagger日志", // 标题
                                "Api Documentation", // 描述
                                "1.0",
                                "urn:tos", // 团队网站连接
                                // 作者信息
                                new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
                                "Apache 2.0",
                                "http://www.apache.org/licenses/LICENSE-2.0",
                                new ArrayList()
                        )
                );
    }
}

在这里插入图片描述

配置扫描接口

.select()
// select后一定要用build

// 指定要扫描的controller
// basePackage:指定扫描的包
// any: 扫描所有
// none: 不扫描
// withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
// withMethodAnnotation: 扫描方法上的注解
.apis(RequestHandlerSelectors.basePackage(“com.czc.controller”))
// 过滤路径–PathSelectors
.paths(PathSelectors.ant("/czc"))
.build()

@Configuration
@EnableSwagger2 // 开启swagger2
public class SwaggerConfig {

    @Bean
    public Docket docket(){

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(
                        new ApiInfo(
                                "czc的Swagger日志", // 标题
                                "Api Documentation", // 描述
                                "1.0",
                                "urn:tos", // 团队网站连接
                                // 作者信息
                                new Contact("czc", "http://localhost:8080", "1299973511@qq.com"),
                                "Apache 2.0",
                                "http://www.apache.org/licenses/LICENSE-2.0",
                                new ArrayList()
                        )
                )

                .select()
                // select后一定要用build
                
                // 指定要扫描的controller
                // basePackage:指定扫描的包
                // any: 扫描所有
                // none: 不扫描
                // withClassAnnotation: 扫描类上的注解,参数为 通过反射得到注解的类
                // withMethodAnnotation: 扫描方法上的注解
                .apis(RequestHandlerSelectors.basePackage("com.czc.controller"))
                // 过滤路径--PathSelectors
                .paths(PathSelectors.ant("/czc"))
                .build()
                ;
    }
}

配置是否开启

.enable(false) // 默认为true,即默认开启

开发环境关闭,测试环境开启

需要 Environment 参数 得到当前环境

    @Bean
    public Docket docket(Environment environment){

        // 通过Profiles类中的of方法得到其对象,传入需要判断的环境名
        // 注意包的路径 org.springframework.core.env.Profiles;
        Profiles profiles = Profiles.of("dev","test");

        // 监听判断当前环境,需要参数Profiles
        boolean flag = environment.acceptsProfiles(profiles);

application中选择环境
spring.profiles.active=dev

分组

.groupName(“czc”)

多个分组:在配置类中,注册多个Docket到bean中

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

 @Bean
 public Docket docket(Environment environment){

文档中的models

在这里插入图片描述

当controller中的方法返回值为一个实体类时,
就会被swagger扫描到,然后放到models中

    @GetMapping("/user1")
    public User user1(){
        return new User();
    }

在这里插入图片描述

给swagger-ui文档添加注释

@ApiModel() ---------------- 作用在实体类
@ApiModelProperty() --------------------- 作用在实体类的属性
@ApiOperation() -------------------- 作用在controller中的方法
@ApiParam() -------------------- 作用在方法中的参数

@ApiModel("用户类")
public class User {
    @ApiModelProperty("用户名")
    public String username;
    public String password;
}

=========================================================

@ApiOperation("这是user1方法")
@GetMapping("/user1")
public User user1(){
    return new User();
}

@GetMapping(value = "/user2")
public String user2(@ApiParam("参数")String username){
    return username;
}

标签:扫描,swagger2,czc,new,Docket,public
来源: https://blog.csdn.net/weixin_52757736/article/details/120958995