springboot低版本整合knife4j
参考网址:
knife4j的gitee仓库
https://search.gitee.com/?skin=rec&type=repository&q=knife4j
knife4j示例
https://gitee.com/xiaoym/swagger-bootstrap-ui-demo
该项目knife4j整合单体springboot,以及knife4j整合springcloud,可以说非常齐全了,开箱即用
参考knife4j示例的knife4j-lower-spring-boot-demo项目
重点说明:
这个是个配置模板,防止以后使用找不到
问题在线
公司最近一个项目是2017年的springboot项目,使用的springboot版本是1.x版本,整合最新的knife4j会出现各种问题
pom依赖
<?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>1.5.11.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xiaominfo</groupId>
<artifactId>knife4j-lower-spring-boot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>knife4j-lower-spring-boot-demo</name>
<description>Spring Boot低版本的测试</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
knife4j配置类
package com.xiaominfo.knife4j.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.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("低版本版本")
.select()
.apis(RequestHandlerSelectors.basePackage("com.xiaominfo.knife4j.demo.web"))
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
return docket;
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger-bootstrap-ui-demo RESTful APIs")
.description("# swagger-bootstrap-ui-demo RESTful APIs")
.termsOfServiceUrl("http://www.xx.com/")
.contact("xx@qq.com")
.version("1.0")
.build();
}
}
说明:
apis(RequestHandlerSelectors.basePackage(“com.xiaominfo.knife4j.demo.web”))指定对应controller包路劲即可
重点总结
如果项目中在线接口文档出现问题,我们可以使用springboot+knife4j这种简洁的风格
优势
-
不需要整合swagger
-
配置简单,添加knife4j依赖+knife4j配置类即可
-
knife4j比swagger更加简洁
-
这种方案可以兼容现阶段springboot高版本
**<u>*兼容很重要!!!*</u>**
个人csdn博客网址:https://blog.csdn.net/shaoming314
个人博客网址:www.shaoming.club
勇敢牛牛,不怕困难