如何在SpringBoot基础上配置SpringFox3.0

z1.在pom.xml文件插入依赖


		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-boot-starter</artifactId>
			<version>3.0.0</version>
		</dependency>

2.新建config包,在config包里新建SwaggerConfig.java文件和SwaggerProperties.java文件

SwaggerConfig.java
package com.example.config;

import lombok.Data;
import org.springframework.boot.SpringBootVersion;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import java.util.*;

/**
 * <p>
 * swagger配置
 * </p>
 *
 * @author Qin xiaotian
 * @since 2021-07-27
 */
@Component
@ConfigurationProperties("swagger")
@Data
public class SwaggerConfig {
    private final SwaggerProperties swaggerProperties;

    public SwaggerConfig(SwaggerProperties swaggerProperties) {
        this.swaggerProperties = swaggerProperties;
    }

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30).pathMapping("/")


                // 定义是否开启swagger,false为关闭,可以通过变量控制
                .enable(swaggerProperties.getEnable())


                // 将api的元信息设置为包含在json ResourceListing响应中。
                .apiInfo(apiInfo())


                // 接口调试地址
                .host(swaggerProperties.getTryHost())


                // 选择哪些接口作为swagger的doc发布
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()


                // 支持的通讯协议集合
                .protocols(newHashSet("https", "http"));

    }

    /**
     * API 页面上半部分展示信息
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title(swaggerProperties.getApplicationName() + " Api Doc")
                .description(swaggerProperties.getApplicationDescription())
                .version("Application Version: " + swaggerProperties.getApplicationVersion() + ", Spring Boot Version: " + SpringBootVersion.getVersion())
                .build();
    }


    @SafeVarargs
    private final <T> Set<T> newHashSet(T... ts) {
        if (ts.length > 0) {
            return new LinkedHashSet<>(Arrays.asList(ts));
        }
        return null;
    }
}
SwaggerProperties.java
package com.example.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * <p>
 * 类描述
 * </p>
 *
 * @author Qin xiaotian
 * @since 2021-07-27
 */
@Component
@ConfigurationProperties("swagger")
@Data
public class SwaggerProperties {

    /**
     * 是否开启swagger,生产环境一般关闭,所以这里定义一个变量
     */
    private Boolean enable;


    /**
     * 项目应用名
     */
    private String applicationName;


    /**
     * 项目版本信息
     */
    private String applicationVersion;


    /**
     * 项目描述信息
     */
    private String applicationDescription;


    /**
     * 接口调试地址
     */
    private String tryHost;
}

3.在启动类头加入以下注解

@SpringBootApplication(scanBasePackages = {"com.example"})

意思是扫描com.example包下所有的类

4.在application.properties文件中加入以下内容

swagger.enable=true
swagger.applicationName=springfox swagger
swagger.applicationVersion=1.0
swagger.applicationDescription=springfox swagger
swagger.tryHost=http://localhost:${server.port}

5.在controller接口类中,加入注解

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 *
 * </p>
 *
 * @author Qin xiaotian
 * @since 2021-7-27
 */
@Api(tags = "测试模块")
@RestController
@RequestMapping("/test")
public class testController {

    @ApiOperation("测试信息")
    @PostMapping("/info")
    public String getOne(@RequestParam(value = "info", required = false) String info) {
        return info ;
    }
}

6.启动springBoot项目,则SwaggerUI就启动了,在地址栏输入地址

http://127.0.0.1:8080/swagger-ui/index.html

出现以下页面

最后附上swagger常用的注解

@Api:修饰整个类,描述Controller的作用 
@ApiOperation:描述一个类的一个方法,或者说一个接口 
@ApiParam:单个参数描述 
@ApiModel:用对象来接收参数 
@ApiModelProperty:用对象接收参数时,描述对象的一个字段 
@ApiResponse:HTTP响应其中1个描述 
@ApiResponses:HTTP响应整体描述 
@ApiIgnore:使用 该注解忽略这个API 
@ApiError :发生错误返回的信息 
@ApiImplicitParam:一个请求参数 
@ApiImplicitParams:多个请求参数 
@ApiImplicitParam属性:
	paramType 查询参数类型 
		path 以地址的形式提交数据 
		query 直接跟参数完成自动映射赋值 
		body 以流的形式提交 仅支持POST 
		header 参数在request headers 里边提交 
		form 以form表单的形式提交 仅支持POST 
	dataType 参数的数据类型 只作为标志说明,并没有实际验证 Long String 
	name 接收参数名 
	value 接收参数的意义描述 
	required 参数是否必填 true 必填 false 非必填 
	defaultValue 默认值 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值