SpringBoot整合--Swagger2

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合--Swagger2相关的知识,希望对你有一定的参考价值。

1.导入依赖

 <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--springboot测试依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--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>
        <!--lombox 插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

2.创建Swagger配置类

package cn.bloghut.config;

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

import java.util.ArrayList;

/**
 * @Classname SwrggerConfig
 * @Description TODO
 * @Date 2021/12/16 15:11
 * @Created by 闲言
 */
@EnableSwagger2
@Configuration
public class SwaggerConfig 
    /**
     * 配置Swagger docket 的 bean 例
     * @return
     */
    @Bean
    public Docket docket()
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()//RequestHandlerSelectors 配置要扫描解接口的方式
                //basePackage 指定要扫描的包
                //any():扫描全部
                //none():不扫码
                //withClassAnnotation:扫描类上的注解,参数是注解的反射对象
                //withMethodAnnotation:扫描方法上的注解
                //withClassAnnotation(RestController.class) 只会扫描类上有RestController 注解的类
                .apis(RequestHandlerSelectors.basePackage("cn.bloghut.controller"))
                //paths()   过滤路径
                .paths(PathSelectors.ant("/**"))
                .build();
    

    /**
     * 单独抽取出来
     * @return
     */
    public ApiInfo apiInfo()
    
        Contact contact = new Contact("闲言","http://www.bloghut.cn","1765736057@qq.com");

        return new ApiInfo(
                "闲言的Swagger Api 文档",
                "即使再小的帆也能远航",
                "v1.0",
                "http://www.bloghut.cn",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList<VendorExtension>());

    



3.创建实体类

/**
 * @Classname User
 * @Description 老师实体类
 * @Date 2021/12/16 15:29
 * @Created by 闲言
 */
@Data
@ApiModel("老师实体类")
@Api("注释信息")
public class User 
    @ApiModelProperty("用老师D")
    private int id;
    @ApiModelProperty("老师名")
    private String name;


4.编写控制器

/**
 * @Classname TeacherController
 * @Description 老师控制器
 * @Date 2021/12/16 15:19
 * @Created by 闲言
 */
@RestController
@RequestMapping("teacher")
public class TeacherController 

    @GetMapping("findAll")
    @ApiOperation("方法注释查询所有老师方法")
    public Object findAll()
        return "Hello SpringBoot!";
    

    @PostMapping("add")
    @ApiOperation("方法注释添加所有老师方法")
    public Object add(@ApiParam("用户")User user)
        return "Hello SpringBoot!";
    

    @PutMapping("update")
    @ApiOperation("方法注释修改所有老师方法")
    public Object update()
        return "Hello SpringBoot!";
    

    @DeleteMapping("delete")
    @ApiOperation("方法注释删除所有老师方法")
    public Object delete()
        return "Hello SpringBoot!";
    


UserController和StudentController未展示


5.测试

1.访问地址

http://localhost/swagger-ui.html

注意:这里我改了端口为80,所以不用显示输入端口


2.跳转到首页

3.查看TeacherController的信息

4.查看add方法

5.完结,主要的代码还是在Swagger配置,其他都是加注解就行了

以上是关于SpringBoot整合--Swagger2的主要内容,如果未能解决你的问题,请参考以下文章

Swagger2springboot整合swagger2

SpringBoot整合Swagger2

SpringBoot整合Swagger2

SpringBoot整合Swagger2简单的例子

5分钟 springboot 整合swagger2

SpringBoot整合Swagger2