我是靠谱客的博主 紧张网络,最近开发中收集的这篇文章主要介绍swagger的使用和lombok的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

swagger的访问接口是127.0.0.1:9090/swagger-ui.html

首先就是要加入依赖

        <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>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>

file->setting->plugins安装lombok插件

在配置文件中写入

server.servlet.context-path=/
spring.swagger2.enable=true
spring.resources.add-mappings=true

新建一个config包,写入swagger的相关代码

package com.example.demo.config;

import io.swagger.models.Contact;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Value(value = "${spring.swagger2.enable}")
    boolean swaggerEnabled;
    @Bean
    public Docket createRestApi() {
        //是否开启swagger,正式环境一般是需要关闭的,可根据springboot的多环境配置进行设置

        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                // 是否开启
                .enable(swaggerEnabled).select()
                // 扫描的路径包
                .apis(RequestHandlerSelectors.basePackage("com.example.demo"))
                // 指定路径处理PathSelectors.any()代表所有的路径
                .paths(PathSelectors.any()).build().pathMapping("/");
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("SpringBoot-Swagger2集成和使用-demo示例")
                .description("springboot | swagger")
                // 作者信息
                .termsOfServiceUrl("https://home.cnblogs.com/u/snowstorm/")
                .version("1.0.0")
                .build();
    }
}

路径包,com.example.demo是必须的

在HelloController中添加API注解

@Api("我的测试springboot类")
@RestController
public class HelloController {
    @Value("${agan.msg}")
    private String msg;

    @ApiOperation("测试方法")
    @GetMapping("/msg")
    public String msg(){
        System.out.println("hello");
        return msg;
    }

    @ApiOperation("测试方法2")
    @PostMapping(value = "/home")
    public JSONObject home(@RequestBody User user) {
        JSONObject json = new JSONObject();
        json.put("user",user);
        return json;
    }
}

常用注解: 
- @Api()用于类; 
表示标识这个类是swagger的资源 
- @ApiOperation()用于方法; 
表示一个http请求的操作 
- @ApiParam()用于方法,参数,字段说明; 
表示对参数的添加元数据(说明或是否必填等) 
- @ApiModel()用于类 
表示对类进行说明,用于参数用实体类接收 
- @ApiModelProperty()用于方法,字段 
表示对model属性的说明或者数据操作更改 
- @ApiIgnore()用于类,方法,方法参数 
表示这个方法或者类被忽略 
- @ApiImplicitParam() 用于方法 
表示单独的请求参数 
- @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

 

给com.demo.bean加上注解,表示这个model类的说明

package com.example.demo.bean;

import com.sun.org.apache.xml.internal.serializer.utils.SerializerMessages_zh_CN;
import com.sun.xml.internal.ws.developer.Serialization;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.lang.annotation.Annotation;

@ApiModel(value = "user对象模型s")
@Data
public class User{
    @ApiModelProperty(value="用户名",name="userName",required = true)
    protected String userName;
    @ApiModelProperty(value = "密码")
    protected String passWord;
}

 

lombcak是一个依赖包,可以减少getter和setter方法的编写和构造器和equals方法,以及可以方便的使用日志系统

@Data注解在实体类上,自动生成javabean的getter/setter方法,写构造器、equals等方法,即可以在这个类上直接调用getter和setter方法,这个是没有写getter和setter方法,但是可以使用set和get等方法

UserV0 userV0 = new UserV0();

userV0.setId(100);

userV0.setUsername("zhangsan");

userV0.getUsername();

核心注解@Slf4j,注解在类前,可以直接使用log对象,和使用其中的,log对象

log.trace("----------trace--------");

log.debuge("----------trace--------");

log.info("----------trace--------");

log.warn("----------trace--------");

log.error("----------trace--------");

如果不适用@Slf4j注解,则需要

private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

接着再使用logger对象

info,warn,error会在控制台打印后三个信息,而不输出trace和debuge

因为springboot默认是info级别的,设置日志级别

logging.level.com.agan.boot=trace

再执行,发现控制台中所有信息都出来了

如果不注解@Data,那么swagger里的model不会显示出来字段的API解释说明

如果@ApiModelProperty没有显示,加上@Data注解就可以了

 

 

最后

以上就是紧张网络为你收集整理的swagger的使用和lombok的使用的全部内容,希望文章能够帮你解决swagger的使用和lombok的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部