概述
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的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复