# 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-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # project-struct 企业级微服务架构项目模板 ## 项目简介 这是一个基于 Spring Cloud 的企业级微服务架构项目模板,采用 DDD(领域驱动设计)分层架构,提供多种服务调用方式,适用于构建高性能、可扩展的微服务系统。 ## 技术栈 | 分类 | 技术 | |------|------| | 框架 | Spring Boot, Spring Cloud | | 调用协议 | HTTP, Feign, Local | | 数据持久 | MyBatis-Plus | | 消息队列 | RabbitMQ/Kafka | | 构建工具 | Maven | ## 项目模块 ### 后端服务(Spring Cloud) ``` project-struct/ ├── project-struct-api # 纯契约:XxxApiCall、VO、Result、常量(无 Feign 注解) ├── project-struct-api-feign # Feign 客户端:extends ApiCall + *Call 方法 ├── project-struct-api-http # HTTP 客户端:implements ApiCall,内部解析 Result ├── 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 # 合并服务入口 ``` ### 前端管理后台(Vue3) ``` admin-template/ ├── src/ │ ├── api/ # API 接口层 │ ├── components/ # 通用组件和业务组件 │ ├── composables/ # 组合式函数(逻辑复用) │ ├── router/ # 路由配置 │ ├── stores/ # Pinia 状态管理 │ ├── utils/ # 工具函数 │ ├── views/ # 页面视图 │ ├── i18n/ # 国际化配置 │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── package.json # 依赖配置 ├── vite.config.js # Vite 配置 ├── jsconfig.json # JavaScript 配置 └── .env.* # 环境变量配置 ``` ## 核心特性 - **多模块架构**:清晰的分层设计,便于维护和扩展 - **DDD 架构**:遵循领域驱动设计原则 - **多种调用方式**:支持 Feign、HTTP、Local 三种服务调用 - **统一响应**:标准化的 API 响应格式 - **自动化工具**:提供跨平台项目初始化脚本 ## 快速开始 ### 环境要求 **后端服务:** - JDK 1.8+ - Maven 3.6+ - RabbitMQ (可选) **前端管理后台:** - Node.js 18+ - npm / yarn / pnpm ### 编译项目 ```bash mvn clean test 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 约定见 **[项目编码规范文档.md](服务端项目编码规范文档.md)**(唯一完整规范)。 ### api:纯契约 ```java public interface ExampleApiCall { ExampleResVO queryExample(ExampleReqVO reqVO); void saveExample(ExampleReqVO reqVO); } ``` ### api-feign:VO 方法 + *Call(Result) ```java @FeignClient(name = "example-service", path = "/internal/feign/api/example") public interface ExampleApiFeignClient extends ExampleApiCall { @Override default ExampleResVO queryExample(ExampleReqVO reqVO) { return queryExampleCall(reqVO).check(); } default void saveExample(ExampleReqVO reqVO) { saveExampleCall(reqVO).check(); } @PostMapping("/query") Result queryExampleCall(ExampleReqVO reqVO); @PostMapping("/save") Result saveExampleCall(ExampleReqVO reqVO); } ``` ### 使用 Feign 客户端 ```java @Autowired private ExampleApiFeignClient apiClient; ExampleResVO vo = apiClient.queryExample(reqVO); ``` ## 调用方式对比 | 方式 | 适用场景 | 性能 | 复杂度 | |------|----------|------|----------| | Feign | 微服务间调用 | 高 | 中 | | HTTP | 外部系统调用 | 中 | 低 | | Local | 同一 JVM 内调用 | 最高 | 低 | ## 项目初始化 ### 后端服务项目初始化 项目提供了跨平台初始化脚本: - **Windows**: `init-project.ps1` - **Linux/Mac**: `init-project.sh` #### 使用方法 ```bash # Linux/Mac ./init-project.sh my-project com.example.my # Windows .\init-project.ps1 -ProjectName my-project -PackageName com.example.my ``` 生成后请先阅读 **[服务端项目编码规范文档.md](服务端项目编码规范文档.md)**,再执行 `mvn clean install`。 ### 前端管理后台项目初始化 同样提供了跨平台初始化脚本: - **Windows**: `init-admin.ps1` - **Linux/Mac**: `init-admin.sh` #### 使用方法 ```bash # Linux/Mac ./init-admin.sh -n my-admin -a http://localhost:8080 # Windows .\init-admin.ps1 -ProjectName my-admin -ApiBasePath http://localhost:8080 ``` 参数说明: - `-n, --name`: 项目名称(必填) - `-a, --api`: 后端 API 基础路径(可选,默认: http://localhost:8080) 初始化完成后: ```bash cd my-admin npm run dev ``` 访问 http://localhost:3000 即可看到管理后台界面。 ## 规范文档 - **[服务端项目编码规范文档.md](服务端项目编码规范文档.md)** — Spring Cloud 微服务架构、API 三层、DDD 分层、编码约定、部署、构建 - **[管理后台项目编码规范文档.md](管理后台项目编码规范文档.md)** — Vue3 + JavaScript 管理后台前端架构、组件设计、状态管理、路由权限、编码约定 建议根据项目类型选择对应的规范文档阅读。 ## 许可证 本项目仅供学习交流使用。