第一步:导入相关依赖
pom.xml文件的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.11</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
第二步:编写配置类
Knife4jConfiguration.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.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Knife4jConfiguration {
@Bean(value = "dockerBean")
public Docket dockerBean() {
//指定使用Swagger2规范
Docket docket=new Docket(DocumentationType.OAS_30)
.apiInfo(new ApiInfoBuilder()
//描述字段支持Markdown语法
.description("# Knife4j RESTful APIs")
.termsOfServiceUrl("https://doc.xiaominfo.com/")
.contact(new Contact("xiaoymin@foxmail.com","xiaoymin@foxmail.com", "xiaoymin@foxmail.com"))
.version("1.0")
.build())
//分组名称
.groupName("用户服务")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
第三步:编写实体类
User.java实体类如下:
package com.example.demo.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("用户实体类")
public class User {
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty(value = "姓名")
private String name;
}
第五步:编写测试用的控制器类
TestContorller.java测试控制器类如下:
package com.example.demo.controller;
import com.example.demo.pojo.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
@RestController
@CrossOrigin(origins = "{*}", maxAge = 3600)
@RequestMapping("/test")
@Api(tags = "测试控制器")
public class TestContorller {
@GetMapping("/getById/{id}")
@ApiOperation("获取id")
@ApiParam(value = "id", name = "用户id")
public String getById(@PathVariable long id) {
System.out.println(id);
return "ok";
}
@PostMapping("/info")
@ApiOperation("用户信息")
public String info(@RequestBody User user) {
System.out.println(user);
return "ok";
}
}
第6步:编写SpringBoot启动器类
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
第七步:编写SpringBoot启动时使用的配置文件
application.yml文件如下:
# 应用名称
spring:
application:
name: fpddownloaddemo
mvc:
pathmatch:
# spring2.6及其以上版本需要设置
matching-strategy: ant_path_matcher
# 应用服务 WEB 访问端口
server:
port: 8080
knife4j:
# 开启增强配置
enable: true
# 开启生产环境屏蔽
production: false
# 开启登录认证
basic:
enable: false
username: admin
password: 123456
第八步:启动SpringBoot启动类
运行结果如下图:

第九步:访问Kinfe4j增强文档地址
默认地址如下:
http://localhost:8080/doc.html

该文展示了如何在SpringBoot项目中集成Knife4j和Swagger2,用于生成RESTfulAPI文档。首先,通过在pom.xml添加依赖,引入了相关库。接着,创建Knife4j配置类以定制Swagger2设置。然后,定义了一个User实体类并编写了测试控制器。启动器类用于运行SpringBoot应用,application.yml配置了Knife4j的相关选项。最后,启动应用后,可以通过http://localhost:8080/doc.html访问增强的API文档。
1990

被折叠的 条评论
为什么被折叠?



