Spring Boot之Swagger2集成

一、Swagger2简单介绍

  Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。

二、Spring Boot集成Swagger2步骤

1)引入Swagger2的Maven坐标

 <!--swagger-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
            </dependency>

2) 加入Swagger2的Java配置类

import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
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;

/**
 * @author zhangboqing
 * @date 2018/8/6
 *
 * swagger2配置
 *
 * 访问地址:
 * http://localhost:8080/swagger-ui.html
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
                //当前包路径
                .apis(RequestHandlerSelectors.basePackage("com.zbq.springbootbase.controller"))
                .paths(PathSelectors.any()).build();

    }

    //构建api文档的详细信息函数
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("springboot-base-frame,使用Swagger2构建RESTful API")
                //创建人
                .contact(new Contact("张波清", "[email protected]", ""))
                //版本号
                .version("1.0")
                //描述
                .description("API 描述")
                .build();

    }

}

3)在Controller方法上加上  @ApiOperation(value="测试", notes="这是一个简单测试方法"),再不用加任何注解。

/**
 * @author zhangboqing
 * @date 2018/9/24
 */
@RestController
public class TestController {

    @ApiOperation(value="测试", notes="这是一个简单测试方法")
    @PostMapping(value = "/test")
    public String test(@RequestHeader String myHeader,String myName) {
        System.out.println("----------->header测试");

        System.out.println(myHeader);
        System.out.println(myName);
        return myHeader;
    }

}

4)若使用了Spring Boot 的拦截器,需要过滤Swagger,确保它不被拦截

  加入如下标记为蓝色的过滤配置,就可以了

/**
 * @author zhangboqing
 * @date 2018/8/7
 *
 * 注册拦截器
 */
@Configuration
public class ApiSecurityConfig2 implements WebMvcConfigurer {

    @Bean
    LoggingInterceptor loggingInterceptor() {
        return new LoggingInterceptor();
    }

    /**
     * 拦截请求
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册日志拦截器
        registry.addInterceptor(loggingInterceptor())
                //添加需要拦截的路径
                .addPathPatterns("/**")
                .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");

    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    /**
     * 跨域配置
     *
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
//        registry.addMapping("/**")
//                // TODO 这里跨域最好配置域名
//                .allowedOrigins("*")
//                .maxAge(3600)
//                .allowCredentials(true)
//                .allowedMethods("GET", "POST", "OPTIONS");
    }
}

三、效果展示 

启动你的项目,访问Swagger2文档地址:http://localhost:8080/swagger-ui.html


原文地址:https://www.cnblogs.com/756623607-zhang/p/9887193.html

时间: 2024-11-08 01:33:52

Spring Boot之Swagger2集成的相关文章

Spring Boot系列——如何集成Log4j2

上篇<Spring Boot系列--日志配置>介绍了Spring Boot如何进行日志配置,日志系统用的是Spring Boot默认的LogBack. 事实上,除了使用默认的LogBack,Spring Boot还可以使用Log4j.Log42等作为自己的日志系统.今天就那Log4j2来举例,说明Spring Boot是如何集成其他日志系统的. 添加jar包依赖 上篇提到过,Spring Boot默认使用LogBack,但是我们没有看到显示依赖的jar包,其实是因为所在的jar包spring-

【ELK】3.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版

spring boot 2.X集成ES 进行CRUD操作  完整版 内容包括: ========================================================================================= 1.CRUD:单字段查询.复合查询.分页查询.评分查询 2.时间范围查询 3.GET方法传入时间类型解析不了的问题 4.term和match查询的区别 5.filter+query查询的区别 6.自定义ES的mapping,自定义setti

深入Spring Boot:快速集成Dubbo + Hystrix

背景Hystrix 旨在通过控制那些访问远程系统.服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力.Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能.Dubbo是Alibaba开源的,目前国内最流行的java rpc框架.本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用.Spring Boot应用生成dubbo集成spring boot的应用配置spring-cloud-starter-netflix-hys

Spring Boot 数据访问集成 MyBatis

对于软件系统而言,持久化数据到数据库是至关重要的一部分.在 Java 领域,有很多的实现了数据持久化层的工具和框架(ORM).在 Java 应用程序中,ORM 框架的本质是简化编程中操作数据库的繁琐性,比如可以根据对象生成 SQL 的 Hibernate ,后面 Hibernate 也实现了JPA 的规范,使用 JPA 的方式只需要几行代码即可实现对数据的访问和操作:MyBatis 的前身是 IBATIS 是一个简化和实现了 Java 数据持久化层的开源框架,可以灵活调试 SQL , MyBat

spring boot使用Swagger2

1. 在pom.xml中加入Swagger2的依赖 1 <!--加入Swagger2的依赖--> 2 <dependency> 3 <groupId>io.springfox</groupId> 4 <artifactId>springfox-swagger2</artifactId> 5 <version>2.2.2</version> 6 </dependency> 7 <dependen

spring boot(十八)集成FastDFS文件上传下载

上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</art

Spring Boot 两步集成 日志收集ELK与分布式系统监控CAT

日志收集ELK与分布式系统监控CAT Spring Boot项目集成方法 一. pom.xml引入starter依赖 <dependency> <groupId>com.louis</groupId> <artifactId>ylog-spring-boot-starter</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> 二. boots

Spring Boot启用Swagger2

Swagger2是一个开源项目,用于为RESTful Web服务生成REST API文档. 它提供了一个用户界面,可通过Web浏览器访问RESTful Web服务. 要在Spring Boot应用程序中启用Swagger2,需要在构建配置文件中添加以下依赖项. <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <v

Spring Boot注解方式集成Mybatis

一.无配置文件注解版 1.pom文件必要jar包的引入 1 <dependency> 2 <groupId>mysql</groupId> 3 <artifactId>mysql-connector-java</artifactId> 4 </dependency> 5 <dependency> 6 <groupId>org.mybatis.spring.boot</groupId> 7 <a