java-springboot项目添加swagger2/Knife4j,附注解

ops/2024/10/11 1:09:41/

文章目录

  • 添加依赖
  • config工作包中新增SwaggerConfig
  • 报错
  • 注解

环境:
jdk1.8
java8
springboot2.6.13
swagger2.9.2

添加依赖

pom.xml

java"><!--        添加swagger2--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency>
<!--        添加swagger-ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>

config工作包中新增SwaggerConfig

SwaggerConfig

java">package com.example.demo.config;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;@Configuration
@EnableSwagger2 //启用swagger2功能
public class SwaggerConfig {/*** 配置swagger2相关的bean*/@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com")).paths(PathSelectors.any()).build();}/*** 此处主要是API文档页面显示信息*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("SpringBoot整合Swagger2").description("SpringBoot整合Swagger2").termsOfServiceUrl("").version("1.0").build();}
}

报错

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

解决:

java">//application.properties
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

注解

作用范围APIAPI常用参数作用位置
协议集描述@Api@Api(tags = {“tag1”,“tag2”,“…”})controller类
协议描述@ApiOperation@ApiOperation(value = “功能描述”,notes = “备注”)controller类的方法
描述返回对象的意义@ApiModel@ApiModel(value=“类名”,description=“类描述”)返回对象类
对象属性@ApiModelProperty@ApiModelProperty(value = “类属性描述”,required = true,example = “属性举例”,notes = “备注”)出入参数对象的字段
非对象参数集@ApiImplicitParams@ApiImplicitParams({@ApiImplicitParam(),@ApiImplicitParam(),…})controller的方法
非对象参数描述@ApiImplicitParam@ApiImplicitParam(name = “参数名”,value = “参数描述”,required = true,paramType = “接口传参类型”,dataType = “参数数据类型”)@ApiImplicitParams的方法里用
Response集@ApiResponses@ApiResponses({ @ApiResponse(),@ApiResponse(),…})controller的方法
Response@ApiResponse@ApiResponse(code = 10001, message = “返回信息”)@ApiResponses里用
忽略注解@ApiIgnore@ApiIgnore类,方法,方法参数
java">package com.example.water.controller;import com.example.water.entity.User;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;import java.util.List;@Api(tags = "控制器说明:用户控制器")
@RestController
public class UserController {@ApiOperation("接口说明:查询用户接口")@RequestMapping(value = "/getUser", method = RequestMethod.GET)public String getUser(@ApiParam(name = "姓名") String name) {return name;}@ApiOperation("接口说明:用户接口")@ApiImplicitParams({@ApiImplicitParam(name = "username", value = "用户名", dataType = "String", defaultValue = "dai"),})@RequestMapping(value = "/setUser", method = RequestMethod.GET)@ResponseBodypublic User user(@RequestParam(name = "name") String name) {User user = new User();user.setName(name);return user;}
}
java">package com.example.water.entity;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;@ApiModel("实体类说明:用户实体类")
public class User {@ApiModelProperty("姓名")private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}

swagger
http://localhost:8080/swagger-ui.html
在这里插入图片描述

Knife4j
http://127.0.0.1:8080/doc.htm
配置与swagger一样,只需要再加个依赖

java"><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version>
</dependency>

在这里插入图片描述


http://www.ppmy.cn/ops/39138.html

相关文章

XML常见解析方式及XXE防御

1.PHP 1.1 SimpleXML SimpleXML是PHP5后提供的一套简单易用的xml工具集,可以把xml转换成方便处理的对象,也可以组织生成xml数据。不过它不适用于包含namespace的xml,而且要保证xml格式完整(well-formed)。它提供了三个方法:simplexml_import_dom、simplexml_load_file、sim…

在51单片机里面学习C语言

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「&#xff23;语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 说出来你们可能都…

AI助手,为生活和工作增添新体验

在当今科技飞速发展的时代,人工智能(AI)已经渗透到我们生活和工作的方方面面。无论是传统的大型语言模型,还是专注于搜索领域的AI助手,都为我们带来了前所未有的便利和效率。让我们一起来探索这些AI产品的魅力所在。 大型语言模型凭借强大的自然语言处理能力,可以为我们提供多…

力扣顺序表思路讲解

本篇文章&#xff0c;我给大家带来的是顺序表题目讲解&#xff0c;希望大家看完有所收获&#xff0c;废话不多说&#xff0c;我们现在开始 审题 大白话&#xff1a;给了一个数组和一个目标值。如果数组里的两个元素相加 目标值&#xff0c;则返回这两个元素的下标。那么大家需…

WMS仓储管理系统库存分类的详细讲解

在当今日益复杂和快速变化的商业环境中&#xff0c;仓库管理成为了一个企业不可或缺的关键环节。WMS仓储管理系统解决方案凭借其自动化和信息化的优势&#xff0c;为企业带来了革命性的改变&#xff0c;特别是在库存分类方面。接下来&#xff0c;我们将深入探讨WMS仓储管理系统…

选择器、pxcook软件、盒子模型

结构伪类选择器 定义&#xff1a;根据结构的元素关系来查找元素。 <title>Document</title><style>li:first-child{color:aqua ;}li:last-child{color: aqua;}li:nth-child(3){color: aqua;}</style> </head> <body><ul><li>…

js 获取某一天所在周的所有天

封装函数 function getWeekDays(date) {let weekDays [];let day date.getDay() - 1;let startDate new Date(date);startDate.setDate(startDate.getDate() - day);for (let i 0; i < 7; i) {weekDays.push(new Date(startDate));startDate.setDate(startDate.getDate…

React + 项目(从基础到实战) -- 第11期

目标 问卷编辑器的开发 设计UI - 拆分布局 水平垂直居中 画布 y方向滚动 自定义问卷组件 后端 返回组件数据 //获取单个问卷信息{url: /api/question/:id,method: get,response: () > {return {errno: 0,data: {id: Random.id(),title: Random.ctitle(),componentList:[//…