# machine-monolith-java **Repository Path**: machineswift/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**: 2025-12-06 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 🚀 Machine 单体应用 ![Machine Logo](https://img.shields.io/badge/Machine-单体应用-blue?style=for-the-badge&logo=spring) [![Project](https://img.shields.io/badge/Project-2.1.1--RELEASE-blue.svg)](pom.xml) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.0.0-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Java](https://img.shields.io/badge/Java-25-red.svg)](https://openjdk.java.net/) [![Maven](https://img.shields.io/badge/Maven-3.6+-blue.svg)](https://maven.apache.org/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) **企业级 Java 单体应用 - 与 Machine 微服务平台同源,核心能力与版本对齐** [功能特性](#-功能特性) • [技术栈](#-技术栈) • [快速开始](#-快速开始) • [项目结构](#-项目结构)
--- ## 📖 项目简介 **Machine Monolith Java** 是 Machine 产品线的单体部署形态,与 [Machine 微服务平台](https://gitee.com/machineswift/machine) 同源共建:业务能力与微服务保持一致,重要功能(如数据素材管理、Spring Boot 4 升级等)会同步迁入,便于在单机/小规模场景下快速交付与运维。 采用多模块 Maven + Spring Boot Starter 架构,内置统一身份认证、权限管理、数据管理、CRM、HRM、SCM 等企业级模块,支持 PostgreSQL、Redis、对象存储(OBS/OSS/MinIO/COS)等基础设施。 ### 🎯 与微服务的差异 | 维度 | 微服务平台 | 单体应用(本项目) | |--------|----------------------|------------------------| | 部署形态 | 多服务(网关、IAM、Manage、OpenAPI 等) | 单进程 `machine-manage-app` | | 服务发现 | Nacos + OpenFeign | 进程内 Client 直调 Service | | 技术栈 | Spring Boot 4 + Spring Cloud 2025 | Spring Boot 4,无 Spring Cloud | | 模块范围 | Generals / Starters / Servers / Apps / Clients / Services / Tests | 无 Servers、无 Tests | --- ## ✨ 功能特性 ### 🔐 身份认证与授权 (IAM) - **多种登录方式**:用户名密码、手机验证码 - **OAuth2**:完整 OAuth2 授权服务器与资源服务器 - **第三方登录**:Gitee、飞书等(JustAuth) - **JWT**:无状态 Token 鉴权 - **RBAC**:角色与细粒度权限、数据权限 - **组织架构**:多级组织与用户管理 ### 📊 数据管理 (Data) - **基础数据**:区域、品牌、供应商、门店等 - **素材管理**:素材上传、分类、修改分类、分页筛选(与微服务能力同步) - **标签系统**:多级标签与智能标签选项 - **附件管理**:统一文件上传/下载、分类 - **下载中心**:导出与下载管理 - **消息通知**:站内消息与模板 ### 👥 客户关系管理 (CRM) - **客户与会员**:客户信息、会员等级与权益 ### 👨‍💼 人力资源管理 (HRM) - **组织与员工**:部门、岗位、员工信息与入职离职 ### 📦 供应链 (SCM) - **基础能力**:SCM 客户端与服务模块,商品/类目相关枚举与扩展预留 --- ## 🔧 技术栈 与根 [pom.xml](pom.xml) 一致,当前项目版本:**2.1.1-RELEASE**。 | 类型 | 技术 / 组件 | 版本 | |------------|--------------------|-------------| | **项目** | Machine 单体 | 2.1.1-RELEASE | | **运行框架** | Spring Boot | 4.0.0 | | **语言** | Java | 25 | | **构建** | Maven | 3.6+ | | **安全** | Spring Security + OAuth2 + JWT | 随 Spring Boot | | **持久化** | MyBatis-Plus + dynamic-datasource-spring-boot4-starter | 3.5.15 / 4.5.0 | | **缓存** | Redisson + Jedis + Caffeine | 4.2.0 / 7.2.1 / 3.2.3 | | **文档** | SpringDoc OpenAPI (springdoc-openapi-starter-webmvc-ui) | 3.0.1 | | **对象存储** | x-file-storage(华为 OBS/阿里 OSS/腾讯 COS/MinIO) | 2.3.0 | --- ## 🚀 快速开始 ### 环境要求 - **JDK 25**(若本地为 JDK 21,可在根 `pom.xml` 中将 `maven-compiler-plugin` 的 `source`/`target` 改为 `21`) - **Maven 3.6+** - **PostgreSQL**(业务库) - **Redis** - 可选:对象存储(OBS/OSS 等)用于附件与素材 ### 构建与运行 ```bash # 克隆后进入项目根目录 cd machine-monolith-java # 编译 mvn clean compile -DskipTests # 运行主应用(需先配置 application.yml 中的数据库、Redis 等) mvn -pl machine-apps/machine-manage-app spring-boot:run ``` 主应用入口:`machine-apps/machine-manage-app`,启动后可通过 Swagger UI 访问 API 文档(具体路径以 `application.yml` 中 springdoc 配置为准)。 ### 配置说明 - 配置文件位于 `machine-apps/machine-manage-app/src/main/resources/` - 需配置数据源、Redis、以及可选的对象存储等,与微服务侧配置项保持一致即可在单体内复用同一套业务行为 --- ## 📁 项目结构 ``` machine-monolith-java/ ├── machine-apps/ # 应用层 │ └── machine-manage-app/ # 单体主应用入口(管理端 API + 鉴权) ├── machine-clients/ # 客户端接口层(进程内调用) │ ├── machine-iam-client/ │ ├── machine-data-client/ │ ├── machine-crm-client/ │ ├── machine-hrm-client/ │ ├── machine-scm-client/ │ └── machine-tpp-client/ ├── machine-services/ # 服务实现层 │ ├── machine-iam-service/ │ ├── machine-data-service/ │ ├── machine-crm-service/ │ ├── machine-hrm-service/ │ └── machine-scm-service/ ├── machine-starters/ # Spring Boot Starter │ ├── machine-common-boot-starter/ │ ├── machine-mybatis-boot-starter/ │ ├── machine-redis-boot-starter/ │ ├── machine-security-boot-starter/ │ └── machine-obs-boot-starter/ ├── machine-generals/ # 通用能力 │ └── machine-common-sdk/ ├── pom.xml # 父 POM └── README.md ``` ### 模块说明 | 层级 | 目录 | 说明 | |-----------|-----------------------|------| | **Apps** | `machine-apps/` | 应用入口,对外 HTTP API 与鉴权 | | **Clients** | `machine-clients/` | 服务接口与 DTO 定义,单体中由 Service 实现并进程内调用 | | **Services** | `machine-services/` | 业务逻辑与数据访问实现 | | **Starters** | `machine-starters/` | 自动配置与通用能力封装 | | **Generals** | `machine-generals/` | 通用 SDK、枚举、异常等 | --- ## 📄 许可证 本项目采用 [MIT License](LICENSE)。 --- ## 📞 联系我们 📧 **邮箱**: machineswift@qq.com ---
**若本项目对您有帮助,欢迎 ⭐ Star** Made with ❤️ by Machine Team