SpringBoot实战:整合Knife4j

本文介绍Knife4j快速整合SpringBoot开发接口。

一,Knife4J介绍

Knife4j 是一个为 Java MVC 框架集成 Swagger 生成 API 文档的增强解决方案,前身是 Swagger-Bootstrap-UI。相比于Swagger,Knife4j提供了更美观、现代化的 UI 界面,增强了交互性。

二,Knife4J和SpringBoot版本关系

三,整合步骤

1. 配置环境

       JDK:17

       SpringBoot:3.4.5

       Knife4j:4.5.0

2. 引入依赖

<dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
      <version>4.5.0</version>
</dependency>

3. 添加配置信息

在application.yml里面添加配置

# springdoc-openapi项目配置
springdoc:
  swagger-ui:
    #自定义swagger前端请求路径,输入http:localhost:8080/swagger-ui会自动重定向到swagger页面
    path: /swagger-ui
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs  #swagger后端请求地址
    enabled: true   #是否开启文档功能
  group-configs: #分组配置,可配置多个分组
    - group: 'default'             #分组名称
      paths-to-match: '/**'        #配置需要匹配的路径
      packages-to-scan: com.cms    #配置要扫描包的路径,一般配置到启动类所在的包名
    - group: 'admin-api'
      paths-to-match: '/**'
      packages-to-scan: com.cms

4. 定义配置类

WebMvcConfig配置SpringMVC信息

/**
 * web层配置类,实现静态资源映射,将knife4j相关资源放行,保证生成的接口文档能够正常进行展示
 * @author Hva
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
 
    /**
     * 设置静态资源映射
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 添加静态资源映射规则
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        //配置 knife4j 的静态资源请求映射地址
        registry.addResourceHandler("/doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

配置Knife4j配置信息

/**
 * Knife4j整合Swagger3 Api接口文档配置类
 * @author Hva
 */
@Configuration
public class Knife4jConfig {
 
    /**
     * 创建了一个api接口的分组
     * 除了配置文件方式创建分组,也可以通过注册bean创建分组
     */
    @Bean
    public GroupedOpenApi adminApi() { 
        return GroupedOpenApi.builder()
                // 分组名称
                .group("app-api")
                // 接口请求路径规则
                .pathsToMatch("/**")
                .build();
    }
 
    /**
     * 配置基本信息
     */
    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        // 标题
                        .title("Knife4j整合Swagger3 Api接口文档")
                        // 描述Api接口文档的基本信息
                        .description("Knife4j后端接口服务...")
                        // 版本
                        .version("v1.0.0")
                        // 设置OpenAPI文档的联系信息,姓名,邮箱。
                        .contact(new Contact().name("Hva").email("Hva@163.com"))
                        // 设置OpenAPI文档的许可证信息,包括许可证名称为"Apache 2.0",许可证URL为"http://springdoc.org"。
                        .license(new License().name("Apache 2.0").url("http://springdoc.org"))
                );
    }
}

5. 创建测试类Controller

DemoController

@RestController
@RequestMapping("demo")
public class DemoController {

    @GetMapping("test")
    @Operation(summary = "测试问好", description = "测试问好")
    @Tag(name = "问好", description = "问好")
    public String demo() {
        return "Hello Knife4j";
    }

}

6. 启动项目调试Knife4j接口

如果一切配置正确,启动SpringBoot项目,并访问url地址:localhost:8080/doc.html(ip:port/doc.html),就可以看到knife4j的界面。

在左上角选择对应的分组,再选择api接口进行测试

四. 踩坑日志

1. 项目不能启动报错

首先检查knife4j和springboot对应的版本是否匹配,不匹配就会报错

<think>好的,用户想找一个基于Spring Boot和Vue.js的完整前后端分离项目示例,特别是需要源码下载。首先,我需要回忆一下之前处理过的类似问题,以及相关的引用资料。 根据用户提供的引用内容,引用[1]、[2]、[3]都提到了Spring Boot和Vue3的前后端分离实战项目,其中引用[1]和[2]详细介绍了项目的搭建过程,引用[3]甚至提到了附有源码。这可能是一个直接相关的资源。用户可能需要具体的步骤来获取这些源码,或者需要知道如何访问这些示例项目。 接下来,我需要检查这些引用是否提供了源码的下载方式。例如,引用[3]的标题是“利用SpringBoot和Vue实现前后端分离(附源码)”,所以很可能里面有源码链接或仓库地址。但用户提供的引用内容里并没有直接给出链接,可能需要引导用户到原始出处查找,或者提供常见的源码平台如GitHub上的项目。 另外,用户提到的“spring boot vue 全栈 示例项目 前后端分离 源码 下载”可能需要推荐一些知名的开源项目,例如若依(RuoYi)或者EL-ADMIN,这些项目在GitHub上比较流行,文档齐全,适合学习。需要确认这些项目是否符合前后端分离的要求,并且是否使用Vue.js作为前端框架。 此外,用户可能需要指导如何搭建开发环境,比如安装Java、Maven、Node.js等,以及如何配置前后端项目使其能够联调运行。引用[1]和[2]中提到了Vue CLI和Spring Boot的搭建步骤,可以结合这些内容给出建议。 还需要考虑用户的技术水平,是否需要详细的步骤说明,或者他们更倾向于直接下载源码并查看文档。因此,回答中应该包含多种资源途径,包括官方文档、GitHub仓库、以及可能的教程链接,确保用户能够找到适合自己需求的示例项目。 最后,确保回答结构清晰,分点列出推荐项目,并说明每个项目的特点和获取方式,同时提供搭建建议和注意事项,如跨域配置、接口联调等,引用相关的引用内容来支持建议,例如引用[5]提到的Axios拦截器配置,这对前端与后端交互可能有帮助。</think>### 基于Spring Boot和Vue.js的前后端分离项目示例推荐 #### 1. **推荐开源项目及源码获取方式** - **若依(RuoYi)** 一个基于Spring Boot + Vue.js的权限管理系统,代码结构清晰,文档完善,适合学习企业级应用开发。 **源码地址**: - GitHub: [https://github.com/yangzongzhuan/RuoYi-Vue](https://github.com/yangzongzhuan/RuoYi-Vue) - Gitee(国内镜像): [https://gitee.com/y_project/RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) - **EL-ADMIN** 轻量级后台管理系统,整合Spring Boot与Vue3,提供动态路由、数据权限等功能。 **源码地址**: - GitHub: [https://github.com/elunez/eladmin](https://github.com/elunez/eladmin) - **实战教程配套项目** 引用[1]和[3]提到的Spring Boot + Vue3实战项目(如知识库系统)通常会在教程中提供源码链接。可通过以下方式查找: - 在博客平台(如CSDN、掘金)搜索标题,查看作者是否附带了GitHub仓库地址。 - 示例关键词:`Spring Boot + Vue3 知识库系统源码`。 --- #### 2. **项目搭建关键步骤** 1. **后端Spring Boot)** - 使用Maven或Gradle构建项目,引用Web、MyBatis、JPA等依赖[^2]。 - 配置跨域支持(CORS),确保前后端通信无障碍[^5]。 - 接口设计遵循RESTful风格,返回JSON格式数据。 2. **前端(Vue.js)** - 通过Vue CLI脚手架初始化项目,集成Vue Router、Axios等库[^1][^3]。 - 使用Axios拦截器统一处理请求和响应(如添加Token、日志打印)。 - 联调时配置代理解决跨域问题(`vue.config.js`中设置`proxy`)[^3]。 --- #### 3. **注意事项** - **依赖版本匹配** Spring Boot 2.x建议搭配Vue3,注意前端`package.json`中依赖版本兼容性。 - **接口联调** 使用Swagger或Knife4j生成API文档,便于前后端协作。 - **部署优化** 前端通过`npm run build`生成静态文件,由Nginx托管;后端打包为JAR独立运行。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿黄学技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值