springboot2接入knife4j
时间: 2025-05-11 10:29:08 浏览: 19
### Spring Boot 2 集成 Knife4j 增强 API 文档功能
在 Spring Boot 2 中集成 Knife4j 可以显著提升 Swagger 的用户体验和功能性。以下是实现这一目标的具体方法:
#### 添加依赖项
为了使 Knife4j 能够正常工作,需在项目的 `pom.xml` 文件中引入必要的 Maven 依赖。
```xml
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<!-- 如果尚未添加Swagger的依赖,则也需要加入 -->
<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>
```
上述代码片段展示了如何通过 Maven 来管理所需的库版本[^1]。
#### 配置 Knife4j 和 Swagger
完成依赖导入后,需要对应用进行适当配置来启用 Knife4j 功能。可以通过创建一个 Java 配置类并标注相应的 Bean 定义来初始化 Docket 对象。
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot RESTful APIs")
.description("API Documentation with Knife4j Enhancement")
.version("1.0")
.build();
}
}
```
此部分定义了一个基础的 Swagger 配置,并设置了基本的信息描述[^2]。
#### 生产环境下的安全设置
对于生产环境中部署的应用程序来说,直接暴露完整的 API 文档可能带来安全隐患。因此可以利用 Nacos 或者其他方式调整 Knife4j 行为模式,从而限制未授权用户的访问权限。
当在 nacos.yml 或 application.properties 文件里增加如下属性时,能够有效屏蔽掉公开接口页面展示行为:
```properties
knife4j.production=true
```
一旦启用了该选项,任何试图浏览在线文档的行为都将被拒绝,并提示缺乏相应许可错误消息。
---
###
阅读全文
相关推荐














