一、基本使用,使用默认配置

1、导入pom依赖,这里需要注意,swagger与springboot的版本需要对应,springboot2.5.6与swagger2.9.2版本是匹配的,不然会报

“Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception is java.lang.NullPoi”
<!-- 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>

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

2、自定义swagger配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {
}

3、写个Controller

@RestController
public class TestController {
    @RequestMapping("/test")
    public String test(){
        return "success";
    }
}

4、进入页面:ip地址:端口号/swagger-ui.html
在这里插入图片描述

二、自定义配置

1、上面写的配置类内容什么都没有写,启动的都是默认的配置,下面自定义配置


@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket docket(Environment environment){
    	//指定在dev/test环境下使用swagger
        Profiles profiles = Profiles.of("dev","test");
        System.out.println(profiles);
        boolean flag = environment.acceptsProfiles(profiles);
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(flag)//关闭swagger,默认是true
                .select()
                //RequestHandlerSelectors:配置要扫描的方式,有basePackage("路径")、any():扫描全部,none():全部不扫描
                //RequestHandlerSelectors.withMethodAnnotation():扫描方法上的注解
                //.withClassAnnotation():扫描类上的注解
                .apis(RequestHandlerSelectors .basePackage("com.example.demo.controller"))//指定扫描的包
                .paths(PathSelectors.ant("/hello/**"))//设置请求路径,这里是带有hello的请求路径
                .build()
                ;
    }

    private ApiInfo apiInfo(){
        Contact contact = new Contact("单俞浩", "https://blog.csdn.net/weixin_44975592", "724629505@qq.com");
        return new ApiInfo(
                "单俞浩的Api",
                "Api Documentation",
                "v1.0",
                "https://blog.csdn.net/weixin_44975592",
                 contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList()
        );
    }
}

2、配置环境
在这里插入图片描述
application.properties

spring.profiles.active=pro

环境指定为pro,所以swagger不会执行
在这里插入图片描述

三、分组和注解

1、分组还是同样在配置类上进行,这样子就可以配置不同需求了
在这里插入图片描述
在这里插入图片描述
2、注解:常用注解有@ApiModel(“ ”)、@Api(“ ”)、@ApiOperation(" "),主要也就是起到注释作用,在swagger也会显示相对应的注释

@ApiModel("用户类")
@Data
@RedisHash("persons")
public class Person {
    @Id
    private String id;
    @Indexed        //二级索引
    private String firstname;
    @Indexed
    private String lastname;

    private Address address;
}

@ApiOperation("测试接口")
@RestController
public class TestController {
    @RequestMapping("/test")
    public String test(){
        return "success";
    }

    @ApiOperation("测试用户接口")
    @PostMapping("/hello")
    public Person hello(Person person){
        return person;
    }
}

效果图
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐