# ddd-examples **Repository Path**: wuliwzt/ddd-examples ## Basic Information - **Project Name**: ddd-examples - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-26 - **Last Updated**: 2025-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DDD Examples - 领域驱动设计示例项目 [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.5-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Java](https://img.shields.io/badge/Java-17-orange.svg)](https://www.oracle.com/java/) [![MyBatis Plus](https://img.shields.io/badge/MyBatis%20Plus-3.5.5-blue.svg)](https://baomidou.com/) [![Redis](https://img.shields.io/badge/Redis-Latest-red.svg)](https://redis.io/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 📋 项目简介 这是一个基于领域驱动设计(DDD)架构的Spring Boot示例项目,展示了现代Java企业级应用的最佳实践。项目采用分层架构,集成了主流技术栈,提供了完整的用户管理、健康档案管理、问诊记录等业务功能。 ## 🏗️ 技术架构 ### 核心框架 - **Spring Boot 3.4.5** - 应用框架 - **Spring Security** - 安全框架 - **Spring Data Redis** - Redis集成 - **Spring AOP** - 面向切面编程 ### 数据层 - **MyBatis Plus 3.5.5** - ORM框架 - **MySQL** - 关系型数据库 - **Druid** - 数据库连接池 - **Redis** - 缓存和会话存储 - **Redisson** - 分布式锁 ### 工具库 - **Lombok** - 代码简化 - **MapStruct 1.5.5** - 对象映射 - **Jackson** - JSON处理 - **JWT (JJWT 0.12.3)** - 令牌认证 - **FastExcel 1.0.0** - Excel处理 - **Apache POI 5.2.4** - Office文档处理 ### 文档和测试 - **Swagger 3 (SpringDoc 2.3.0)** - API文档 - **Jakarta Validation** - 参数校验 ## 📁 项目结构 ``` src/main/java/com/example/ ├── application/ # 应用层 │ └── service/ # 应用服务 │ └── impl/ # 服务实现 ├── domain/ # 领域层 │ ├── entity/ # 领域实体 │ ├── repository/ # 领域仓储接口 │ └── service/ # 领域服务 ├── infrastructure/ # 基础设施层 │ ├── common/ # 通用组件 │ │ ├── BasePO.java # 基础PO类 │ │ ├── Result.java # 统一响应结果 │ │ └── PageResult.java # 分页结果 │ ├── config/ # 配置类 │ │ ├── RedissonConfig.java # Redis配置 │ │ └── SecurityConfig.java # 安全配置 │ ├── converter/ # 对象转换器 │ ├── excel/ # Excel处理 │ ├── generator/ # 代码生成器 │ ├── lock/ # 分布式锁 │ ├── persistence/ # 持久化 │ │ ├── mapper/ # MyBatis Mapper │ │ └── po/ # 持久化对象 │ ├── security/ # 安全相关 │ │ └── JwtUtils.java # JWT工具 │ └── util/ # 工具类 │ └── JsonUtils.java # JSON工具 └── interfaces/ # 接口层 └── controller/ # 控制器 ├── dto/ # 数据传输对象 └── converter/ # DTO转换器 src/main/resources/ ├── application.yml # 应用配置 ├── logback-spring.xml # 日志配置 ├── sql/ # SQL脚本 │ └── schema.sql # 数据库表结构 └── templates/ # 代码生成模板 ├── controller.java.ftl # 控制器模板 ├── entity.java.ftl # 实体模板 ├── service.java.ftl # 服务模板 ├── dto.java.ftl # DTO模板 └── converter.java.ftl # 转换器模板 ``` ## 🚀 快速开始 ### 环境要求 - **JDK 17+** - **Maven 3.6+** - **MySQL 8.0+** - **Redis 6.0+** ### 安装步骤 1. **克隆项目** ```bash git clone https://github.com/your-username/ddd-examples.git cd ddd-examples ``` 2. **数据库配置** ```bash # 创建数据库 mysql -u root -p CREATE DATABASE ddd_examples; # 导入表结构 mysql -u root -p ddd_examples < src/main/resources/sql/schema.sql ``` 3. **修改配置** ```yaml # src/main/resources/application.yml spring: datasource: url: jdbc:mysql://localhost:3306/ddd_examples username: your_username password: your_password data: redis: host: localhost port: 6379 password: your_redis_password ``` 4. **启动应用** ```bash mvn clean install mvn spring-boot:run ``` 5. **访问应用** - 应用地址: http://localhost:8080 - API文档: http://localhost:8080/swagger-ui.html - 默认账号: admin/admin123 ## 🔧 核心功能 ### 用户管理 - 用户注册/登录 - JWT令牌认证 - 权限控制 - 用户信息管理 ### 健康档案管理 - 健康档案CRUD - 档案信息导入/导出 - 数据统计分析 ### 问诊记录管理 - 问诊记录管理 - 多种问诊类型支持 - 问诊状态跟踪 ### 健康资讯管理 - 资讯内容管理 - 分类管理 - 内容发布 ### 系统功能 - 统一异常处理 - 操作日志记录 - 分布式锁 - Excel导入导出 - API文档自动生成 ## 📊 API 文档 项目集成了Swagger 3,启动应用后访问 http://localhost:8080/swagger-ui.html 查看完整的API文档。 ### 主要接口 | 模块 | 接口路径 | 描述 | |------|----------|------| | 用户管理 | `/api/users` | 用户CRUD操作 | | 健康档案 | `/health-records` | 健康档案管理 | | 问诊记录 | `/consultations` | 问诊记录管理 | | 健康资讯 | `/health-articles` | 资讯内容管理 | ### 认证方式 ```bash # 登录获取token curl -X POST http://localhost:8080/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123"}' # 使用token访问接口 curl -X GET http://localhost:8080/api/users \ -H "Authorization: Bearer your_jwt_token" ``` ## 🛠️ 开发指南 ### 代码生成 项目提供了MyBatis Plus代码生成器,可以快速生成CRUD代码: ```java // 运行 CodeGenerator.java public class CodeGenerator { public static void main(String[] args) { // 配置数据库连接和生成参数 // 执行生成 } } ``` ### 新增业务模块 1. **创建数据库表** 2. **运行代码生成器** 3. **完善业务逻辑** 4. **添加单元测试** ### 代码规范 - 遵循阿里巴巴Java开发手册 - 使用Lombok简化代码 - 统一异常处理 - 完善的日志记录 - 充分的参数校验 ## 🔒 安全配置 ### JWT配置 ```yaml jwt: secret: mySecretKey123456789012345678901234567890 expiration: 604800 # 7天 refresh-expiration: 2592000 # 30天 ``` ### 权限控制 - 基于Spring Security - JWT令牌认证 - 角色权限管理 - 接口级别权限控制 ## 📈 性能优化 ### 缓存策略 - Redis缓存热点数据 - 分布式锁防止缓存击穿 - 合理的缓存过期时间 ### 数据库优化 - Druid连接池 - MyBatis Plus分页插件 - 合理的索引设计 ### 日志配置 - 分环境日志级别 - 异步日志输出 - 日志文件滚动策略 ## 🧪 测试 ```bash # 运行单元测试 mvn test # 运行集成测试 mvn integration-test # 生成测试报告 mvn surefire-report:report ``` ## 📦 部署 ### Docker部署 ```dockerfile FROM openjdk:17-jre-slim COPY target/ddd-examples-1.0.0.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"] ``` ```bash # 构建镜像 docker build -t ddd-examples . # 运行容器 docker run -p 8080:8080 ddd-examples ``` ### 生产环境配置 ```yaml # application-prod.yml spring: profiles: active: prod datasource: url: jdbc:mysql://prod-db:3306/ddd_examples data: redis: host: prod-redis logging: level: com.example: INFO org.springframework: WARN ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ### 提交规范 ``` feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式调整 refactor: 代码重构 test: 测试相关 chore: 构建过程或辅助工具的变动 ``` ## 📝 更新日志 ### v1.0.0 (2025-01-26) - 初始版本发布 - 完成基础架构搭建 - 实现用户管理功能 - 集成健康档案管理 - 添加问诊记录功能 - 完善API文档 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 🙋‍♂️ 联系方式 - 项目维护者: [Your Name] - 邮箱: your.email@example.com - 项目地址: https://github.com/your-username/ddd-examples ## 🙏 致谢 感谢以下开源项目的支持: - [Spring Boot](https://spring.io/projects/spring-boot) - [MyBatis Plus](https://baomidou.com/) - [Redisson](https://redisson.org/) - [Swagger](https://swagger.io/) --- ⭐ 如果这个项目对你有帮助,请给个Star支持一下!