Springboot整合swagger2

第一步:添加依赖

  <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>

  第二步:添加配置文件

package com.example.lianxi.demo.config;

import io.swagger.annotations.ApiOperation;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@ConditionalOnProperty(name = "swagger.enable",  havingValue = "false")//通过配置文件是否开启swagger,生成环境一般不开启
public class SwaggerConfigure {

    @Bean
    public Docket createDocket(){
        Docket docket = new Docket(DocumentationType.SWAGGER_2);
        docket
                .select()
                .paths(PathSelectors.any())
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .build();
        return docket;
    }

}

第三步:访问

http://localhost:8081/swagger-ui.html

第四步:常用注解

@Api 用在请求的类上,表示对类的说明

@ApiOperation 用在请求的方法上

@ApiImplicitParams 用在请求的方法上,表示一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

@ApiModel 用在请求的类上,表示对类的说明
@ApiResponses用在请求的方法上,表示一组响应
@ApiParam 用在请求方法中,描述参数信息

例子:

@RestController
@RequestMapping("/kettle")
@Api(tags = "kettle调度任务")
public class KettleDispatchController {}
 /**
     * 调度作业
     */
    @GetMapping("/job")
    @ApiOperation(value = "调度作业")
    public BaseResponse job(@RequestParam("jobName") String jobName) {
        dispatchJobService.runJob(jobName);
        return BaseResponse.success(null);

    }
@Data
@ApiModel(value="ConsultProject对象",description="项目留言")
public class ConsultProjectDto  implements Serializable {


    /**
     * 公司名称
     */
    @ApiModelProperty(value="公司名称",example="百度")
    private String companyName;

    /**
     * 联系人
     */
    @ApiModelProperty(value="联系人",example="张三")
    private String contactsName;

    /**
     * 联系人电话
     */
    @ApiModelProperty(value="联系人电话",example="18709980921")
    private String contactsPhone;

    /**
     * 咨询标题
     */
    @ApiModelProperty(value="咨询标题",example="标题1")
    private String consultTitle;

    /**
     * 咨询内容
     */
    @ApiModelProperty(value="咨询内容",example="内容")
    private String consultContent;

    /**
     * 咨询对象
     */
    @ApiModelProperty(value="咨询对象",example="某老师")
    private String consultMan;

    /**
     * 价格
     */
    @ApiModelProperty(value="价格",example="100")
    private String price;

    /**
     * 成本项目id
     */
    @ApiModelProperty(value="成本项目id")
    private String topicInfoId;

//    /**
//     * 创建人
//     */
//    private String createBy;
//
//    /**
//     * 创建时间
//     */
//    @CreatedDate
//    private LocalDateTime createDate;
//
//    /**
//     * 更新人
//     */
//    private String updateBy;
//
//    /**
//     * 更新时间
//     */
//    private LocalDateTime updateDate;
}
原文地址:https://www.cnblogs.com/liubaihui/p/13434201.html