一、思维导图整体知识结构梳理
1. Knife4j + SpringBoot3
- 核心介绍
- 作用:接口文档生成工具,基于 OpenAPI3 规范
- SpringBoot3 注意:使用 jakarta 包,不再是 javax
- 访问地址:http://localhost: 端口 /doc.html
- 引入 Maven 依赖
- knife4j-openapi3-jakarta-spring-boot-starter
- 版本推荐:4.5.0
- 配置类(OpenAPI3)
- @Configuration
- @Bean 生成 OpenAPI 对象
- 设置文档标题、描述、版本、联系人信息
- 分组配置:可以按模块拆分接口文档
- application.yml 配置
- springdoc 配置:扫描包,指定 Controller 所在包;开启关闭 swagger
- knife4j 增强配置:enable 是否开启 knife4j 增强;setting 设置中文、关闭生产环境提示
- OpenAPI3 常用注解(SpringBoot3)
- @Tag:标记 Controller,模块名称,替代旧版 @Api
- @Operation:标记接口方法,接口说明,摘要
- @Parameter:描述单个请求参数
- @Schema:实体类字段注释,替代 @ApiModel/@ApiModelProperty,写在实体类上,描述整个实体;写在属性上:描述字段含义、示例
- @Hidden:可在类 / 方法 / 属性,文档隐藏不展示
- Knife4j 专属增强注解
- @ApiSupport:放在 Controller 类上,author 作者,order 排序
- @ApiOperationSupport:加在接口方法上,order 接口排序,ignoreParameters 忽略参数
- 使用流程
- 导入依赖
- 编写 OpenAPI 配置 Bean
- Controller、实体添加注解
- 启动项目访问 doc.html
- 常见问题
- 404:检查端口、上下文路径、包扫描
- 注解不生效:SpringBoot3 必须用 OpenAPI3 注解;swagger2 注解失效
2. 书城项目 day01 整合 MyBatis(不含分页查询)
- 数据库建立
- 数据库:bookdb
- 数据表 t_book 图书表
- 字段清单:id 主键,name 书籍名称,type 图书分类 id,provider 出版社,author 作者,img_url 图片路径,store_count 库存数量,buy_count 购买量,read_count 阅读量,status 状态 0 下架,2 上架
- SQL 建表语句:create table t_book (...)
- 其他相关表(简表)
- t_user 用户表:用户账号密码等
- t_cart 购物车表:用户 id,书籍 id,购买数量
- t_order 订单表:订单 id,订单详情
- t_address 用户收货地址表
- 构建工程:SpringBoot 多模块项目
- 模块划分
- book-parent 父工程,打包方式 pom
- book-common:公共模块,实体类、工具类、常量、枚举
- book-mapper:mapper,Mapper 接口 + Mapper.xml
- book-service:业务层,Service 接口 + Service 实现类
- book-controller:控制层,Controller、项目启动类、yml 配置
- book-web:前端 Vue 工程
- 父工程 pom.xml 作用
- modules 标签,管理全部子模块
- 继承 spring-boot-starter-parent
- dependencyManagement:锁定依赖版本,子模块引入依赖不用写版本号
- 模块依赖关系(单向依赖)
- controller 依赖 service
- service 依赖 mapper
- mapper 依赖 common
- 模块划分
- 依赖与配置文件
- 核心依赖
- spring-boot-starter-web:web 项目,接收 http 请求
- mybatis-spring-boot-starter:SpringBoot 整合 mybatis
- druid-spring-boot-starter:德鲁伊连接池
- mysql-connector-j:mysql 驱动
- lombok:简化实体类,get、set、toString
- knife4j-openapi3-jakarta-spring-boot-starter:接口文档
- application.yml 配置文件
- server 配置:port 端口号
- spring.datasource 数据源配置:driver-class-name,url,username,password;druid 连接池参数:初始连接、最大连接
- mybatis 配置:mapper-locations:xml 映射文件路径;type-aliases-package:实体类别名包;map-underscore-to-camel-case: true 下划线自动转驼峰;log-impl:打印执行的 SQL 语句,调试用
- 核心依赖
- Book 模块接口编写(MyBatis)
- Book 实体类(放 common 模块)
- @Data、@NoArgsConstructor、@AllArgsConstructor、@Schema 注解,给文档生成字段说明
- BookMapper 接口(Mapper 层)
- @Mapper 注解,标识为 MyBatis 映射接口
- 方法 1:findBookById (Long id) 根据主键查询单本图书
- 方法 2:findBookOnline () 查询所有上架书籍 status=2
- BookMapper.xml 映射文件
- namespace:绑定 BookMapper 接口全限定名
- select 标签,编写 SQL
- resultMap:配合下划线转驼峰,自动封装 Book 对象
- BookService 业务层
- BookService 接口:定义业务方法 findBookById, findBookOnline
- BookServiceImpl 实现类
- @Service 注解
- @Autowired 注入 BookMapper
- 实现接口方法,调用 mapper 方法
- BookController 控制层
- @RestController
- @Tag (图书模块) Knife4j 注解
- @RequestMapping ("/book") 统一路径前缀
- @Operation 接口说明
- @GetMapping ("/{id}") findBookById 接口,路径参数,查询单本图书
- @GetMapping ("/online") findBookOnline 接口,查询上架全部图书
- Book 实体类(放 common 模块)
二、制作意图
- 搭建 SpringBoot 多模块工程,掌握父子工程、模块依赖管理,企业项目常用工程结构
- 掌握 Knife4j + OpenAPI3 接口文档,学会注解使用、yml 配置,快速生成可在线调试的接口文档
- 整合 MyBatis,完成数据库建表、实体、Mapper、Service、Controller 分层开发,熟悉后端标准分层开发流程
- 书城项目作为贯穿项目,完成基础查询接口开发,为后续分页、新增、修改、删除、业务功能铺垫
三、当日学习总结
- SpringBoot3 使用 Knife4j 必须切换 OpenAPI3 体系,注解全部更换,jakarta 包,不能沿用 swagger2 旧注解,否则文档失效
- 多模块项目核心:父工程统一管理版本,子模块单向依赖,职责拆分,便于大型项目维护
- MyBatis 整合重点:yml 数据源配置、mapper 映射文件编写、实体类与数据库字段映射、驼峰命名自动转换,SQL 日志调试
- 后端开发分层思想:Controller 接收请求 → Service 处理业务 → Mapper 操作数据库,分层解耦,便于后期维护扩展
- 书城项目完成基础图书查询接口,可在 Knife4j 文档页面直接测试接口,验证数据库返回数据

转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/weixin_75217422/article/details/166140238




