# machine-monolith-java **Repository Path**: jason_1990/machine-monolith-java ## Basic Information - **Project Name**: machine-monolith-java - **Description**: ERP系统(单体架构) - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-14 - **Last Updated**: 2026-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Machine Monolith Java
![Java](https://img.shields.io/badge/Java-25-orange.svg) ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.0-brightgreen.svg) ![License](https://img.shields.io/badge/License-MIT-blue.svg) ![Maven](https://img.shields.io/badge/Maven-3.6+-red.svg) **企业级 Java 单体应用系统 - 基于 Spring Boot 4 的现代化企业管理系统** [演示环境](#-演示环境) • [功能特性](#-功能特性) • [技术栈](#-技术栈) • [环境要求](#-环境要求) • [快速开始](#-快速开始) • [项目结构](#-项目结构) • [配置说明](#-配置说明) • [文档](#-文档)
--- ## 📖 项目简介 Machine Monolith Java 是一个基于 **Spring Boot 4** 构建的企业级单体应用系统,采用多模块 Maven 架构,通过 Spring Boot Starter 机制实现模块化封装。系统提供完整的身份认证、权限管理、数据管理、客户关系管理、人力资源管理等企业级功能模块,支持灵活的扩展和定制。 系统内置完善的权限控制、对象存储(OBS)、消息通知等特性,并集成 OAuth2、JWT、第三方登录(Gitee、飞书)、OpenAPI 文档等能力。 ## 🌐 演示环境 | 项目 | 说明 | |----------|---------------------------| | **访问地址** | http://www.machinerust.cn | | **演示账号** | `guest` | | **演示密码** | `123456` | 可直接使用上述账号登录体验系统功能。 ## ✨ 功能特性 ### 🔐 身份认证与授权 (IAM) - **多种登录方式**:支持用户名密码、手机验证码登录 - **OAuth2 认证**:完整的 OAuth2 授权服务器和资源服务器实现 - **第三方登录**:集成 Gitee、飞书等第三方平台登录 - **JWT Token**:基于 JWT 的无状态认证机制 - **权限管理**:基于角色的访问控制(RBAC),支持细粒度权限控制 - **组织架构**:支持多级组织架构管理 - **用户管理**:完整的用户生命周期管理(含店铺用户、供应商用户等) ### 📊 数据管理 (Data) - **基础数据管理**:区域、品牌、物料、供应商等基础数据维护 - **标签系统**:灵活的多级标签分类体系 - **附件管理**:统一的文件上传、下载、分类管理(含 OBS 多存储支持) - **店铺管理**:多店铺信息管理 - **消息通知**:站内消息和消息模板管理 - **下载中心**:文件下载中心功能 ### 👥 客户关系管理 (CRM) - **客户管理**:客户信息维护和客户关系跟踪 - **会员管理**:会员等级、积分、权益管理 ### 👨‍💼 人力资源管理 (HRM) - **组织架构**:部门、岗位管理 - **员工管理**:员工信息、入职、离职管理 - **岗位管理**:岗位信息维护 ### 📦 供应链 (SCM) - 供应链相关业务模块(通过 `machine-scm-client` / `machine-scm-service` 提供) --- ## 🛠 技术栈 | 类别 | 技术 | |------------|----------------------------------------------------------| | **核心框架** | Spring Boot 4.0、Spring WebMvc、Tomcat | | **持久层** | MyBatis-Plus、Dynamic DataSource、PostgreSQL、P6Spy(SQL 分析) | | **缓存** | Redisson、Jedis、Caffeine | | **安全** | Spring Security、OAuth2、JWT(jjwt)、JustAuth(第三方登录) | | **API 文档** | SpringDoc OpenAPI 3(Swagger UI) | | **对象存储** | x-file-storage(华为 OBS / 阿里 OSS / 腾讯 COS / MinIO) | | **工具库** | Hutool、Guava、Lombok、Gson、FastExcel、Kaptcha | | **第三方集成** | 微信(公众号/小程序/支付/开放平台/企业微信)、飞书、Gitee、XXL-Job、Camunda、Flink | | **可观测** | SkyWalking(APM、Logback) | --- ## 📋 环境要求 - **JDK**:25+ - **Maven**:3.6+ - **PostgreSQL**:需预先创建数据库(默认 schema 由 `machine.datasource.schema` 指定,如 `machine_all`) - **Redis**:用于会话、缓存等 --- ## 🚀 快速开始 ### 1. 克隆项目 ```bash git clone cd machine-monolith-java ``` ### 2. 编译项目 ```bash mvn clean install -DskipTests ``` ### 3. 配置应用 主配置文件:`machine-apps/machine-manage-app/src/main/resources/application.yml`。 默认激活 profile:`LOCAL`,请在该 profile 或对应环境中配置: - **数据源**:`machine.datasource.host`、`machine.datasource.schema`、`machine.datasource.username`、`machine.datasource.password` - **Redis**:`machine.redis.host`、`machine.redis.port`、`machine.redis.password`(可选) - **OAuth2 回调**(可选):`auth2.redirectFrontUri`、Gitee/飞书的 `clientId`、`clientSecret`、`redirectUri` ### 4. 启动应用 主类:`com.machine.app.manage.ManageApp`。 ```bash cd machine-apps/machine-manage-app mvn spring-boot:run ``` 或运行打包后的 jar: ```bash java -jar machine-manage-app.jar ``` 默认端口:**8080**。 上下文路径:`/machine-gateway-server/machine-manage-app`。 ### 5. 访问 API 文档 启动后访问 SpringDoc Swagger UI(根据实际 context-path): - **Swagger UI**:`http://localhost:8080/machine-gateway-server/machine-manage-app/swagger-ui.html` --- ## 📁 项目结构 ``` machine-monolith-java/ ├── machine-apps/ # 应用模块 │ └── machine-manage-app/ # 主应用入口(ManageApp) │ ├── src/main/java/ # Java 源代码(Controller、VO、Business) │ └── src/main/resources/ # 配置文件(application.yml 等) │ ├── machine-clients/ # 客户端模块(API 接口与 DTO 定义) │ ├── machine-iam-client/ # IAM 客户端 │ ├── machine-data-client/ # 数据服务客户端 │ ├── machine-crm-client/ # CRM 客户端 │ ├── machine-hrm-client/ # HRM 客户端 │ ├── machine-scm-client/ # SCM 客户端 │ └── machine-tpp-client/ # 第三方平台客户端 │ ├── machine-services/ # 服务实现模块(业务逻辑与数据访问) │ ├── machine-iam-service/ # IAM 服务实现 │ ├── machine-data-service/ # 数据服务实现 │ ├── machine-crm-service/ # CRM 服务实现 │ ├── machine-hrm-service/ # HRM 服务实现 │ └── machine-scm-service/ # SCM 服务实现 │ ├── machine-starters/ # Spring Boot Starter 模块 │ ├── machine-base-boot-starter/ # 通用 Web/校验等基础能力 │ ├── machine-mybatis-boot-starter/ # MyBatis-Plus 与数据源 │ ├── machine-redis-boot-starter/ # Redis 集成 │ ├── machine-security-boot-starter/ # 安全认证与 OAuth2 │ └── machine-obs-boot-starter/ # 对象存储 │ ├── machine-generals/ # 通用模块 │ └── machine-common-sdk/ # 通用 SDK(公共模型、工具等) │ ├── pom.xml # 父 POM(依赖管理、Java 25、Spring Boot 4) └── README.md # 项目说明文档 ``` ### 模块说明 | 模块 | 说明 | |----------------------|----------------------------------------------| | **machine-apps** | 应用层,主应用入口及 HTTP 控制器 | | **machine-clients** | 客户端层,定义服务接口与 DTO,供 app 与 service 解耦 | | **machine-services** | 服务层,实现业务逻辑与数据访问(依赖 mybatis/redis 等 starters) | | **machine-starters** | 自动配置与能力封装(基础、MyBatis、Redis、安全、OBS) | | **machine-generals** | 通用工具与 SDK | --- ## ⚙️ 配置说明 | 配置项 | 说明 | |--------------------------------------------|--------------------------------------------| | `spring.profiles.active` | 激活的 profile,默认 `LOCAL` | | `machine.datasource.schema` | 数据库 schema(如 `machine_all`) | | `machine.datasource.host` | PostgreSQL 主机(在 profile 或环境变量中配置) | | `machine.datasource.username` / `password` | 数据库账号密码 | | `machine.redis.host` / `port` / `password` | Redis 连接信息 | | `auth2.redirectFrontUri` | OAuth2 前端回调地址 | | `auth2.gitee` / `auth2.feiShu` | Gitee、飞书 clientId、clientSecret、redirectUri | 数据源与 MyBatis 详细配置见 `machine-mybatis-boot-starter` 的 `machine-mybatis.yml`;Redis 见 `machine-redis-boot-starter` 的 `machine-redis.yml`。 --- ## 📄 文档 - **API 文档**:启动应用后访问 Swagger UI(见 [快速开始](#-快速开始) 第 5 步)。 - **版本**:当前项目版本 **2.0.1-RELEASE**(见根目录 `pom.xml`)。 --- ## 📄 许可证 本项目采用 [MIT License](LICENSE) 许可证。 ## 👥 作者 **machineswift** - Gitee: [@machineswift](https://gitee.com/machineswift)