基于 SpringBoot 3.5.6 开发的 Java 后端后台管理业务基础框架,常用的业务功能已经集成,开箱即用,相关使用说明,可以参考:
主要更新
3.5.1 将兼容使用 Gradle 管理项目,随着项目的体积越来越大,模块越来越多,在传统的 Maven 项目中,无论是编译或是打包运行,都让项目变得越来越缓慢,所以引入了 Gradle 的项目配置,新项目直接选择使用 Gradle 管理就行了,如果是老项目升级,可以参考:Maven 项目迁移到 Gradle
基于 SpringBoot 3.5.6 开发的 Java 后端后台管理业务基础框架,常用的业务功能已经集成,开箱即用,相关使用说明,可以参考:
3.5.1 将兼容使用 Gradle 管理项目,随着项目的体积越来越大,模块越来越多,在传统的 Maven 项目中,无论是编译或是打包运行,都让项目变得越来越缓慢,所以引入了 Gradle 的项目配置,新项目直接选择使用 Gradle 管理就行了,如果是老项目升级,可以参考:Maven 项目迁移到 Gradle
Gradle 结合了 Maven 的规范和 Ant 的灵活,是更现代的构建工具,多数场景下比 Maven 更高效,且完全兼容 Maven;Gradle 有着强大的项目构建功能,各种缓存机制,以及独特的打包方式,使得可以多模块并行打包,总体的体验下来就是项目越多,模块越多,打包速度相比 Maven 打包更快
关键维度对比:
本文记录了如何将 Gradle 构建的项目发布到 Maven 中央仓库( https://central.sonatype.com )
这些步骤在之前的文章 发布包到 Maven Central 仓库 已经记录过了,其中,GPG 有些不一样的操作,下文会写出来
Docker 是一个开源的容器化平台,它能将应用程序及其依赖(如库、配置文件等)打包到一个标准化的 “容器” 中,确保应用在任何环境(开发、测试、生产)中都能以相同的方式运行。简单来说,Docker 解决了 “在我电脑上能运行,在你电脑上跑不起来” 的经典问题。
相关信息
核心概念:容器 vs 虚拟机
要理解 Docker,首先可以对比它与传统虚拟机(VM)的区别:
虚拟机:需要模拟完整的操作系统(包括内核),资源占用高、启动慢(通常分钟级)。
容器:不模拟完整操作系统,而是共享主机的内核,仅隔离应用所需的资源(如进程、内存、文件系统等),因此更轻量(MB 级)、启动快(秒级)。
Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
—— Apache Kafka
在实际项目中,我们需要保存文件,比如用户上传的头像,或者上传的文档,一般不会保存到数据库中,而是保存到文件系统,比如本地文件系统,或者云存储。文件服务整合本地文件系统、阿里云OSS、MinIO、FastDFS,提供统一的接口操作文件的上传和下载删除操作,开发者后续也可以自行实现接口扩展。
提示
在实际开发中,如果没有统一的文件服务(如 MinIO),可以修改 taybct.file.type 为 local,直接本地开发就行了,到了生产环境,再修改为 minio或者其他文件服务,减少资源占用,毕竟我们要的是逻辑正确,而不是实现细节不同
除了已经集成的 RPC 框架(Spring Cloud OpenFeign、Apache Dubbo)之外,也提供了消息队列的解决方案,比如 Kafka、RabbitMQ 等。
在实际开发过程中,如果有涉及到和第三方的对接,我们会提供一些接口出去,但是,如果有很多对接方,那么,后续升级接口,就会导致接口的版本问题,所以,这边建议写接口的时候呢,加上版本号,
对接旧接口的继续使用,不会影响,新接口的,则需要加上更高的版本号,这样,当对接方升级的时候,就会自动使用新的接口,而不会影响到旧接口的使用。
.
`-- controller
|-- v1
| `-- SysUserController.java
|-- v2
| `-- SysUserController.java
`-- v3
`-- SysUserController.java
角色权限控制(RBAC)是一种基于角色的权限控制方式,它将用户分配给不同的角色,每个角色都有一组权限,用户只能访问自己角色所拥有的权限。
角色是权限控制中的核心概念,它表示一组权限。
权限是角色所拥有的权限,它表示用户可以执行的操作。
菜单权限表示用户可以查看的菜单。
在前端来看表示用户可以点击哪些按钮进行操作,在后端来看表示用户可以访问哪些接口进行操作。
