# forge **Repository Path**: ForgeLab/forge ## Basic Information - **Project Name**: forge - **Description**: 基于 SpringBoot 3.x + JDK 17 构建的轻量化企业级管理系统基础框架,以配置驱动为核心设计理念,追求简洁高效、开箱即用,助力开发者快速搭建稳定可靠的企业级应用 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-05 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 当前项目目录结构显示这是一个基于Spring Boot的多模块Java项目,包含多个功能模块,如系统管理、任务调度、消息通知、文件存储、ID生成等。该项目主要面向企业级应用开发,提供基础能力支持,如权限管理、数据字典、日志记录、文件上传、定时任务、消息推送等。 ## 项目说明 Forge 是一个基于 Spring Boot 的企业级开发框架,提供了一系列开箱即用的基础功能模块,帮助开发者快速构建企业级应用。该项目采用模块化设计,支持多租户架构,适用于需要复杂权限控制、任务调度、消息通知、数据管理等功能的企业级应用场景。 ## 主要功能模块 - **forge-admin**:项目主模块,提供启动类和基础配置。 - **forge-plugin-system**:系统管理模块,包含用户、角色、权限、组织架构、岗位、租户等基础管理功能。 - **forge-plugin-job**:任务调度模块,提供定时任务的管理与执行能力。 - **forge-plugin-message**:消息通知模块,支持系统内消息的发送、接收与管理。 - **forge-plugin-generator**:代码生成模块,支持根据数据库表结构自动生成代码。 - **forge-starter-auth**:认证模块,提供登录、注册、权限验证等功能。 - **forge-starter-cache**:缓存模块,基于 Redisson 提供分布式缓存支持。 - **forge-starter-config**:配置中心模块,支持从数据库加载配置并实现配置的动态刷新。 - **forge-starter-datascope**:数据权限模块,提供基于角色的数据范围控制。 - **forge-starter-excel**:Excel 导出模块,支持通用 Excel 导出功能。 - **forge-starter-file**:文件存储模块,支持本地和云端文件存储,提供上传、下载、删除等功能。 - **forge-starter-id**:ID 生成模块,提供分布式 ID 生成能力。 - **forge-starter-log**:日志模块,支持操作日志和登录日志的记录。 - **forge-starter-message**:消息通道模块,支持短信、站内信等多种消息发送方式。 - **forge-starter-trans**:数据翻译模块,支持字典翻译、枚举转换等。 - **forge-starter-orm**:ORM 模块,基于 MyBatis Plus 提供数据库访问能力。 - **forge-starter-web**:Web 支持模块,提供通用 Web 层支持。 ## 技术栈 - **Java 17+** - **Spring Boot 2.7+** - **MyBatis Plus** - **Redisson(缓存)** - **Quartz(任务调度)** - **Sa-Token(权限控制)** - **MySQL(默认数据库支持)** - **分布式 ID 生成器(基于 UidGenerator)** - **多租户架构支持** ## 项目特点 - **模块化设计**:各功能模块解耦,便于扩展与维护。 - **多租户支持**:系统支持多租户架构,适用于 SaaS 场景。 - **数据权限控制**:支持细粒度的数据权限配置。 - **代码生成器**:可根据数据库表结构自动生成代码,提升开发效率。 - **通用功能集成**:集成文件上传、日志记录、消息通知、定时任务等通用功能。 - **配置中心支持**:支持从数据库加载配置并实现动态刷新。 - **国际化支持**:支持多语言,包含中文、英文等语言包。 ## 使用说明 ### 启动项目 1. 确保已安装 JDK 17+ 和 Maven。 2. 导入数据库表结构(SQL 文件位于各个模块的 `sql` 目录)。 3. 修改 `forge-admin/src/main/resources/application.yml` 中的数据库连接信息。 4. 执行 `mvn clean install` 安装依赖。 5. 运行 `ForgeAdminApplication.java` 启动项目。 ### 配置说明 - **数据库配置**:在 `application.yml` 中配置数据库连接信息。 - **多租户配置**:支持租户隔离,可在配置文件中启用或禁用。 - **文件存储配置**:支持本地、MinIO、OSS ://gitee.com/ForgeLab/forge ### 项目结构 ``` forge ├── forge-admin │ └── 启动模块,包含主类和基础配置 ├── forge-framework │ └── forge-plugin-parent │ ├── forge-plugin-system # 系统管理模块 │ ├── forge-plugin-job # 任务调度模块 │ ├── forge-plugin-message # 消息通知模块 │ ├── forge-plugin-generator # 代码生成模块 │ └── ... │ └── forge-starter-parent │ ├── forge-starter-auth # 认证模块 │ ├── forge-starter-cache # 缓存模块 │ ├── forge-starter-config # 配置中心模块 │ ├── forge-starter-datascope # 数据权限模块 │ ├── forge-starter-excel # Excel 导出模块 │ ├── forge-starter-file # 文件存储模块 │ ├── forge-starter-id # ID 生成模块 │ ├── forge-starter-log # 日志记录模块 │ ├── forge-starter-message # 消息通道模块 │ ├── forge-starter-trans # 数据翻译模块 │ └── forge-starter-orm # ORM 模块 └── pom.xml ``` ## 开发建议 - **模块扩展**:如需新增业务模块,建议参考 `forge-plugin-parent` 下的模块结构进行扩展。 - **多租户开发**:开发时注意租户隔离逻辑,确保数据操作时带上租户 ID。 - **权限控制**:使用 Sa-Token 进行权限控制,结合 `@DataScopeIgnore` 控制数据权限。 - **日志记录**:使用 `@OperationLog` 注解记录操作日志。 - **国际化支持**:多语言资源文件位于 `forge-admin/src/main/resources/i18n/`。 ## 开源协议 本项目采用 **Apache-2.0** 协议,详情请查看项目根目录下的 `LICENSE` 文件。 ## 贡献代码 欢迎贡献代码,请遵循以下步骤: 1. Fork 本项目。 2. 创建新分支。 3. 提交 Pull Request。 ## 联系方式 如需技术支持或反馈,请提交 Issue 或联系项目维护者。 --- **项目地址**:[Gitee Forge 项目](https://gitee.com/ForgeLab/forge)