# project-struct **Repository Path**: GardenerHan/project-struct ## Basic Information - **Project Name**: project-struct - **Description**: 项目结构示例项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-06 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # project-struct 企业级微服务架构项目模板 ## 项目简介 这是一个基于 Spring Cloud 的企业级微服务架构项目模板,采用 DDD(领域驱动设计)分层架构,提供多种服务调用方式,适用于构建高性能、可扩展的微服务系统。 ## 技术栈 | 分类 | 技术 | |------|------| | 框架 | Spring Boot, Spring Cloud | | 调用协议 | HTTP, Feign, Local | | 数据持久 | MyBatis-Plus | | 消息队列 | RabbitMQ/Kafka | | 构建工具 | Maven | ## 项目模块 ``` project-struct/ ├── project-struct-api # API 接口定义模块 │ ├── call/ # 服务调用接口 │ ├── common/ # 通用响应类 │ ├── enums/ # 枚举定义 │ └── vo/ # 值对象 ├── project-struct-api-feign # Feign 客户端模块 ├── project-struct-api-http # HTTP 客户端模块 ├── project-struct-biz # 业务逻辑模块 │ ├── application/ # 应用层 │ ├── common/ # 公共组件 │ ├── converter/ # 对象转换器 │ ├── domain/ # 领域层 │ ├── infrastructure/ # 基础设施层 │ └── messaging/ # 消息处理 ├── project-struct-rps-feign # Feign 服务端实现 ├── project-struct-rps-http # HTTP 服务端实现 ├── project-struct-rps-local # 本地服务实现 ├── project-struct-server-all # 整合服务入口 └── project-struct-server-merge # 合并服务入口 ``` ## 核心特性 - **多模块架构**:清晰的分层设计,便于维护和扩展 - **DDD 架构**:遵循领域驱动设计原则 - **多种调用方式**:支持 Feign、HTTP、Local 三种服务调用 - **统一响应**:标准化的 API 响应格式 - **自动化工具**:提供跨平台项目初始化脚本 ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - RabbitMQ (可选) ### 编译项目 ```bash mvn clean install ``` ### 启动服务 ```bash # 启动 All in One 服务 cd project-struct-server-all mvn spring-boot:run ``` ## 配置说明 主要配置项在 `application.yml` 中: ```yaml server: port: 8080 spring: application: name: project-struct ``` ## 使用示例 ### 定义 API 接口 ```java public interface ExampleApiCall { ExampleResVO queryExample(ExampleReqVO reqVO); void saveExample(ExampleReqVO reqVO); } ``` ### 使用 Feign 客户端 ```java @FeignClient(name = "example-service") public interface ExampleApiFeignClient extends ExampleApiCall { } // 注入使用 @Autowired private ExampleApiFeignClient apiClient; ``` ## 调用方式对比 | 方式 | 适用场景 | 性能 | 复杂度 | |------|----------|------|----------| | Feign | 微服务间调用 | 高 | 中 | | HTTP | 外部系统调用 | 中 | 低 | | Local | 同一 JVM 内调用 | 最高 | 低 | ## 项目初始化 项目提供了跨平台初始化脚本: - **Windows**: `init-project.ps1` - **Linux/Mac**: `init-project.sh` ### 使用方法 ```bash # Linux/Mac ./init-project.sh -n my-project -p com.example # Windows .\init-project.ps1 -n my-project -p com.example ``` 详细说明请参阅 [INIT-README.md](./INIT-README.md) ## 目录结构规范 ``` src/main/java/com/hgx/p1/ ├── api/ # API 定义 ├── application/ # 应用层 ├── common/ # 公共组件 ├── converter/ # 对象转换 ├── domain/ # 领域层 ├── infrastructure/ # 基础设施 └── messaging/ # 消息处理 ``` ## 许可证 本项目仅供学习交流使用。 ## 相关文档 - [项目模板完善总结](./README-SUMMARY.md) - [初始化脚本说明](./INIT-README.md)