# RuoYi-Boot-Plus **Repository Path**: autumnchendq/ruoyi-boot-plus ## Basic Information - **Project Name**: RuoYi-Boot-Plus - **Description**: 重构RuoYi-Vue-Plus项目结构, 按spring-boot源码项目来规划规范模块及依赖,像使用spring-boot的方式来使用此项目,只作为技术基座,跟业务代码分离开来。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: https://plus.dhf.cc - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-07-17 - **Last Updated**: 2024-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuoYi-Boot-Plus(RuoYi-Vue-Plus 重构版)
- - - ## 平台简介 [![码云Gitee](https://gitee.com/denghuafeng/ruoyi-boot-plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Vue-Plus) [![GitHub](https://img.shields.io/github/stars/denghuafeng/RuoYi-Boot-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/master/LICENSE) [![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Vue-Plus)
[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-5.2.1-success.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]() [![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() [![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)]() ## RuoYi-Boot-Plus:重构典范,打造精炼技术基座的深度解析 > RuoYi-Vue-Plus原项目地址: [传送门](https://gitee.com/dromara/RuoYi-Vue-Plus) > RuoYi-Vue-Plus原项目文档地址: [plus-doc](https://plus-doc.dromara.org) > ### 项目结构重构目标 RuoYi-Vue-Plus 项目的重构目标是提升其可维护性、可扩展性和专业度,使其更加贴合现代软件工程的优秀实践。通过深度重构,项目被重塑为一个纯粹的技术基座,与业务代码完全分离,确保技术栈的独立升级和管理,同时不影响业务逻辑的正常运行。 #### 技术基座:模块化、依赖管理精细化与业务代码分离 * 模块化设计:RuoYi-Vue-Plus 的核心功能被重新组织为多个独立模块,每个模块聚焦于特定的业务领域或技术层面,确保模块间的高内聚和低耦合。 * 依赖管理精细化:利用 Maven 或 Gradle 的依赖管理工具,精确控制模块间的依赖关系,避免引入不必要的依赖,从而提高构建速度和项目整体的稳定性。 * 明确边界:重构后的 RuoYi-Vue-Plus 明确划分了技术基座与业务代码的边界。技术基座提供统一的基础设施、通用服务和工具类,而业务代码则专注于具体的业务逻辑实现,二者互不干扰。 * 独立开发与测试:业务代码可以独立于技术基座进行开发和测试,这意味着技术栈的升级或变更不会直接影响业务逻辑的运行,降低了业务中断的风险。 * 简化集成流程:当业务逻辑发生变化时,只需在业务代码层进行修改,无需触及技术基座,这简化了集成测试和持续交付流程,提高了开发效率。 #### 🫧无缝对接与卓越体验:快速开发,业务升级无感知 * 平滑升级,业务无感知:技术基座的迭代与优化,确保业务逻辑的运行如初,开发者无需担忧技术更新带来的业务中断或数据风险。 * 共享RuoYi-Vue-Plus的后端功能:RuoYi-Boot-Plus 继承并拓展了RuoYi-Vue-Plus的所有后端功能,通过高度封装的组件,实现了功能的可插拔性,用户可根据项目需求灵活选择,按需启用。 * 直接使用RuoYi-Vue-Plus的前端访问:与RuoYi-Vue-Plus的前端无缝对接,无需额外配置,即可享受一致的用户体验和功能,确保了前端与后端的完美协调。 #### 适用群体:满足多元需求的开发者 * 快速开发人群:RuoYi-Boot-Plus 提供了开箱即用的开发环境,通过简单的注解与配置,即可快速搭建起功能完备的应用框架,助力开发者迅速投入业务逻辑的开发。 * 无需改动RuoYi-Vue-Plus源代码的人群:对于希望利用RuoYi-Vue-Plus强大功能,但不希望或无法直接修改源代码的开发者,RuoYi-Boot-Plus 提供了理想的解决方案,通过配置而非编码,实现功能的定制。 * 仅需调整RuoYi-Vue-Plus配置项即可满足开发的人群:通过配置项的微调,即可满足大部分开发需求,无需深入底层代码,降低了学习和使用的门槛,让开发者能够专注于业务逻辑的创新。 #### 使用方式 重构后的 RuoYi-Vue-Plus 采用了类似于 Spring Boot 的使用方式,开发者只需在项目中引入相应的依赖,即可快速启动开发工作。这种设计降低了学习和使用的门槛,使得项目能够更好地适应未来业务和技术的变化。 模块化开发模式,后续将把所开发的模块都发布到了maven中央库,也可本地把源代码通过Maven install安装到本地,然后通过类似于 Spring Boot 的使用方式来进行项目搭建,搭建方式有两种。 1.继承ruoyi-boot-starter-parent,定义了当前项目使用的所有模块坐标,以达到减少依赖配置的目的。 ``` org.dromara.boot ruoyi-boot-starter-parent 5.2.1 ``` 2.实际中有时候不想以ruoyi-boot-vue作为父类,可以换另外一种方式添加ruoyi-boot-vue依赖,此方式定义了若干个rouyi-boot-vue所有模块坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的 ``` org.dromara.boot ruoyi-boot-dependencies ${RuoYi-Boot-Vue.version} pom import ``` 实际开发 使用任意坐标时,仅书写GAV中的G和A,V由RuoYi-Boot-Vue和SpringBoot提供 如发生坐标错误,再指定version(要小心版本冲突) 3.业务模块创建引用基础starter依赖,参考ruoyi-demo和ruoyi-system ``` org.dromara.boot ruoyi-boot-starter-coverage ``` 4.后台管理启动模块依赖,参考ruoyi-admin,然后根据需求,看是否要引用生成代码模块等等。 ``` org.dromara.boot ruoyi-boot-launcher-admin ``` 5.前台管理启动模块依赖,参考ruoyi-front,类似商城前台项目 ``` org.dromara.boot ruoyi-boot-launcher-front ``` #### 结语 通过重构,RuoYi-Vue-Plus 不仅在技术架构上变得更加成熟和稳健,还为开发者提供了更高效、便捷的开发体验。技术基座与业务代码的彻底分离,为项目的长期发展奠定了坚实的基础,同时也为追求高质量软件工程实践的团队提供了有力的支持。这标志着 RuoYi-Vue-Plus 正朝着更专业化、更现代化的方向迈进,为开发者和企业带来了更大的价值。 #### 目录结构 ``` ruoyi-boot-plus [ruoyi-boot-parent] ├─ruoyi-applications -- 应用模块 │ ├─ruoyi-admin -- 后台管理应用 │ └─ruoyi-front -- 前台应用 ├─ruoyi-boot -- 核心模块 ├─ruoyi-data-services -- 数据服务模块 ├─ruoyi-dependencies -- 父级依赖 │ ├─ruoyi-boot-dependencies -- starters及集成其他模块依赖 │ │ └─ruoyi-boot-starter-parent -- 继承ruoyi-boot-dependencies及RuoYi-Vue-Plus环境插件等基础配置 │ ├─ruoyi-build-dependencies -- 基础构建依赖 │ ├─ruoyi-services-dependencies -- 服务模块依赖 │ ├─ruoyi-rest-dependencies -- 接口模块 │ ├─ruoyi-tools-dependencies -- 工具模块依赖 │ └─ruoyi-extensions-dependencies -- 扩展模块依赖 ├─ruoyi-extensions -- 扩展模块 │ ├─ruoyi-monitor-admin -- 监控 │ └─ruoyi-snailjob-server -- snailjob ├─ruoyi-launchers -- 启动器模块 │ ├─ruoyi-boot-launchers -- 单体启动器 │ │ ├─ruoyi-boot-launcher-admin --后台管理单体启动器- │ │ └─ruoyi-boot-launcher-front --前台单体启动 │ └─ruoyi-cloud-launchers -- 公共接口模块 ├─ruoyi-rest -- 控制层/接口模块 │ ├─ruoyi-admin-rest -- 后台管理接口 │ │ ├─ruoyi-admin-rest-auth --授权接口 │ │ ├─ruoyi-admin-rest-demo --demo接口 │ │ ├─ruoyi-admin-rest-generator --代码生成器接口 │ │ ├─ruoyi-admin-rest-monitor --监控接口 │ │ ├─ruoyi-admin-rest-oss --oss接口模块 │ │ ├─ruoyi-admin-rest-system --系统接口 │ │ └─ruoyi-admin-rest-workflow --工作流接口 │ └─ruoyi-public-rest -- 公共接口模块 │ └─ruoyi-public-rest-captcha --验证码接口 ├─ruoyi-services -- 服务模块 │ ├─ruoyi-demo -- demo │ ├─ruoyi-generator -- 代码生成器 │ ├─ruoyi-job -- 任务调度器 │ ├─ruoyi-system -- 系统 │ └─ruoyi-workflow -- 工作流 ├─ruoyi-starters -- 控制层/接口模块 │ ├─ruoyi-boot-starters -- boot-starters │ │ ├─ruoyi-boot-starter --核心模块依赖及自动化配置 │ │ ├─ruoyi-boot-starter-coverage -基础starter依赖引用 │ │ ├─ruoyi-boot-starter-doc --demo接口 │ │ ├─ruoyi-boot-starter-encrypt --encrypt │ │ ├─ruoyi-boot-starter-excel --excel │ │ ├─ruoyi-boot-starter-idempotent --idempotent │ │ ├─ruoyi-boot-starter-job --job │ │ ├─ruoyi-boot-starter-json --json │ │ ├─ruoyi-boot-starter-log --log │ │ ├─ruoyi-boot-starter-mail --mail │ │ ├─ruoyi-boot-starter-mybatis --mybatis │ │ ├─ruoyi-boot-starter-oss --oss │ │ ├─ruoyi-boot-starter-ratelimiter --ratelimiter │ │ ├─ruoyi-boot-starter-redis --redis │ │ ├─ruoyi-boot-starter-satoken --satoken │ │ ├─ruoyi-boot-starter-security --security │ │ ├─ruoyi-boot-starter-sensitive --sensitive │ │ ├─ruoyi-boot-starter-sms --sms │ │ ├─ruoyi-boot-starter-social --social │ │ ├─ruoyi-boot-starter-tenant --tenant │ │ ├─ruoyi-boot-starter-translation --translation │ │ ├─ruoyi-boot-starter-web --web │ │ └─ruoyi-boot-starter-websocket --websocket │ └─ruoyi-cloud-starters -- cloud starter模 ├─ruoyi-tools -- 工具模块 ```