# RuoYi-Vue-Plus-Solon **Repository Path**: dalmatian/RuoYi-Vue-Plus-Solon ## Basic Information - **Project Name**: RuoYi-Vue-Plus-Solon - **Description**: RuoYi-Vue-Plus-Solon 是基于Solon 为框架,对 狮子RuoYi-Vue-Plus 的致敬改编版 将原生springboot 生态改造成 国产 solon 生态,只做了适配原生业务未修改,前端支持使用 plus-ui,目前为初版大概基本能用,部分插件持续更新中... - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 57 - **Forks**: 4 - **Created**: 2025-06-30 - **Last Updated**: 2025-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuoYi-Vue-Plus-Solon ## 项目简介 RuoYi-Vue-Plus-Solon是基于[Solon](https://solon.noear.org) 为框架,对[RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) 致敬改编版 将原生springboot 生态改造成 国产 solon 生态,只做了适配原生业务未修改,前端支持使用 [plus-ui](https://gitee.com/JavaLionLi/plus-ui),目前为初版大概基本能用,部分插件持续更新中... ## 性能比较 ### 初始内存比较 ![img.png](img.png) ### 成品包大小比较 #### solon ![img_1.png](img_1.png) #### springboot 3.4.x ![img_3.png](img_3.png) ## 功能特性 - **多租户支持**:通过租户ID隔离数据,支持动态切换租户 - **权限控制**:基于 Sa-Token 的 RBAC 权限模型,支持菜单权限、数据权限 - **认证体系**:支持多种登录方式(密码、短信、邮箱、社交登录) - **系统管理**:包含用户、角色、部门、岗位、菜单等基础管理模块 - **日志审计**:操作日志、登录日志完整记录 - **文件存储**:集成对象存储服务(OSS),支持多种存储策略 - **字典管理**:统一的字典数据与类型管理 - **参数配置**:系统参数在线维护与缓存刷新 ## 模块结构 - **dalmatian-common**:通用工具类与基础组件 - common-core:核心工具类(日期、JSON、异常处理等) - common-web:Web 层基础类与拦截器 - common-mybatis:MyBatis 增强功能(数据权限、多租户支持) - common-satoken:权限认证模块 - common-redis:Redis 缓存封装 - common-excel:Excel 导入导出支持 - **dalmatian-system**:系统核心模块 - controller:REST API 接口定义 - service:业务逻辑实现 - mapper:数据库访问接口 - domain:实体类与数据传输对象(DTO/BO/VO) - listener:事件监听器 ## 技术栈 - **框架**:[Solon](https://solon.noear.org) - **权限**:[Sa-Token](https://sa-token.dev33.cn) - **ORM**:MyBatis-Plus - **缓存**:Redisson - **消息队列**:Kafka(可选) - **文件存储**:OSS(支持本地、MinIO、阿里云等) - **开发规范**:基于 RESTful API 设计规范 ## 快速开始 ### 环境要求 - Java 17+ - Maven 3.8+ - Redis 6.0+ - MySQL 8.0+ 或其他兼容数据库 ### 构建项目 ```bash mvn clean install ``` ### 启动系统 ```bash cd dalmatian-modules/dalmatian-system mvn exec:exec ``` ## 使用说明 ### 登录认证 支持多种登录方式: - 密码登录 `/auth/login` - 短信验证码 `/auth/login` - 邮箱验证码 `/auth/login` - 社交登录 `/auth/login` ### 接口文档 系统提供完整的 OpenAPI 文档,可通过以下路径访问: ``` /swagger-ui.html ``` ### 多租户管理 - 租户注册 `/system/tenant` - 租户配置 `/system/tenant/config` - 动态切换租户 `/system/tenant/dynamic/{tenantId}` ### 数据权限 通过 `@DataPermission` 注解实现数据权限控制,支持以下策略: - 全部数据权限 - 自定义数据权限 - 本部门及子部门数据权限 - 本部门数据权限 - 个人数据权限 ### 文件处理 支持 Excel 导入导出功能,示例: ```java // 导出 Excel ExcelUtil.exportExcel(list, "用户列表", SysUserVo.class, response); // 导入 Excel ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class); ``` ## 开发规范 - **代码风格**:遵循阿里巴巴 Java 开发规范 - **异常处理**:使用 `R` 类封装统一返回格式 - **日志记录**:通过 `@Log` 注解实现操作日志自动记录 - **接口安全**: - 使用 `@SaCheckPermission` 进行权限校验 - 使用 `@RepeatSubmit` 防止重复提交 - 使用 `@RateLimiter` 控制接口调用频率 ## 配置说明 主要配置文件位于 `dalmatian-system/src/main/resources/app.yml`,包含: ```yaml # Redis 配置 redisson: address: "redis://127.0.0.1:6379" defSeconds: 3600 keyPrefix: "dalmatian" # 多租户配置 tenant: enable: true excludes: ["/auth/login", "/auth/code"] # 验证码配置 captcha: enable: true type: math category: default ``` ## 扩展建议 - **新增模块**:遵循 `sys_{module}` 表结构命名规范 - **权限集成**:实现 `ISysPermissionService` 接口 - **数据权限**:继承 `PlusDataPermissionInterceptor` - **缓存管理**:使用 `CacheUtils` 或 `RedisUtils` ## 贡献指南 欢迎提交 Pull Request,请遵循以下规范: 1. Fork 项目并创建功能分支 2. 提交代码前执行 mvn checkstyle:check 3. 保持单元测试覆盖率在 80% 以上 4. 提交信息使用 [Conventional Commits](https://www.conventionalcommits.org) 规范 ## 许可协议 本项目采用 Apache-2.0 协议,详情请参见 [LICENSE](LICENSE) 文件。