logo
0
0
WeChat Login

PetClinic 宠物医院管理系统

基于 Spring Boot 3.4.2 + Vue 3.x 的现代化宠物医院管理系统,采用微服务架构和前后端分离设计。

项目概述

PetClinic 是一个功能完整的宠物医院管理平台,提供宠物档案管理、兽医排班、预约系统、医疗记录跟踪等核心功能。系统采用领域驱动设计(DDD)原则,具备高可用性、可扩展性和安全性。

核心特性

  • 🏥 微服务架构 - 6个独立微服务,松耦合设计
  • 🔐 安全认证 - 基于 Keycloak 的 OAuth2/OIDC 认证
  • 📊 实时监控 - Spring Boot Actuator + SkyWalking 链路追踪
  • 🚀 容器化部署 - Docker + Docker Compose 多环境支持
  • 📱 响应式前端 - Vue 3.x + TDesign UI 组件库
  • 🧪 全面测试 - 单元测试 + 集成测试 + 端到端测试

目标用户

  • 🏢 宠物医院管理人员 - 机构运营和数据分析
  • 🩺 兽医和医护人员 - 日常诊疗和患者管理
  • 🐾 宠物主人 - 预约和宠物健康追踪
  • 🔧 系统管理员 - 系统维护和权限管理

技术架构

后端技术栈

技术版本用途
Spring Boot3.4.2核心框架
Spring Cloud2023.0.0微服务支持
Keycloak22.0身份认证
MySQL8.0主数据库
Redis7.0缓存
Nacos2.2.3服务注册与发现
Seata1.7.1分布式事务
Resilience4j2.1.0熔断降级

前端技术栈

技术版本用途
Vue3.x核心框架
TypeScript5.0类型安全
TDesign1.0UI组件库
Pinia2.0状态管理
Vite5.0构建工具

部署架构

  • 容器化: Docker + Docker Compose
  • 监控告警: Spring Boot Actuator
  • 链路追踪: SkyWalking + Zipkin

项目结构

petclinic/ ├── services/ # 微服务模块 (6个核心服务) │ ├── user-service/ # 用户服务 (端口: 8081) │ ├── pet-service/ # 宠物服务 (端口: 8082) │ ├── vet-service/ # 兽医服务 (端口: 8083) │ ├── appointment-service/ # 预约服务 (端口: 8084) │ ├── medical-record-service/ # 病历服务 (端口: 8085) │ └── sync-service/ # 同步服务 (端口: 8086) ├── frontend/ # Vue 3.x 前端应用 │ ├── src/ # 源代码目录 │ ├── public/ # 静态资源 │ ├── package.json # 依赖配置 │ └── Dockerfile # 容器配置 ├── common/ # 公共模块库 │ ├── core/ # 核心工具类 │ └── security/ # 安全组件 ├── infrastructure/ # 基础设施配置 ├── keycloak/ # Keycloak认证服务 ├── nacos-config/ # Nacos配置中心 ├── sql/ # 数据库脚本 ├── scripts/ # 部署和测试脚本 ├── docker-compose.*.yml # 多环境Docker配置 (9个环境) └── pom.xml # Maven父项目配置

快速开始

环境要求

工具版本备注
JDK21+推荐使用 Kona JDK 21
Node.js18+推荐使用 18.17.0+
Docker20.10+容器化支持
MySQL8.0+数据库
Redis7.0+缓存
Maven3.6+构建工具
pnpm8.0+包管理器

🚀 快速开始

环境要求

工具版本备注
JDK21+推荐使用 Kona JDK 21
Node.js18+推荐使用 18.17.0+
Docker20.10+容器化支持
MySQL8.0+数据库
Redis7.0+缓存
Maven3.6+构建工具
pnpm8.0+包管理器

本地开发

  1. 克隆项目
git clone <repository-url> cd copilotcli-petclinic
  1. 启动基础设施 (推荐使用轻量级配置)
# 使用轻量级配置快速启动 docker-compose -f docker-compose.lightweight.yml up -d # 或者使用开发环境完整配置 docker-compose -f docker-compose.dev.yml up -d
  1. 启动后端服务
# 编译整个项目 mvn clean compile # 批量启动所有微服务 (推荐) ./scripts/start-all-services.sh # 或者单独启动服务 cd services/user-service && mvn spring-boot:run cd services/pet-service && mvn spring-boot:run # ... 其他服务端口请参考下表
  1. 启动前端应用
cd frontend pnpm install pnpm dev

服务端口分配

服务端口健康检查地址
API Gateway8080http://localhost:8080/actuator/health
User Service8081http://localhost:8081/actuator/health
Pet Service8082http://localhost:8082/actuator/health
Vet Service8083http://localhost:8083/actuator/health
Appointment Service8084http://localhost:8084/actuator/health
Medical Record Service8085http://localhost:8085/actuator/health
Sync Service8086http://localhost:8086/actuator/health

多环境部署

开发环境

# 完整开发环境(包含所有基础设施) docker-compose -f docker-compose.dev.yml up -d # 或者使用轻量级配置(推荐用于快速开发) docker-compose -f docker-compose.lightweight.yml up -d

测试环境

# 测试环境配置 docker-compose -f docker-compose.test.yml up -d # 或者使用简单配置 docker-compose -f docker-compose.simple.yml up -d

生产环境

# 构建生产镜像 docker-compose -f docker-compose.prod.yml build # 启动生产服务 docker-compose -f docker-compose.prod.yml up -d

ARM64 环境

# ARM64架构兼容配置 docker-compose -f docker-compose.arm64.yml up -d

核心功能模块

1. 微服务架构

  • 用户服务 (user-service): 用户注册、登录、权限管理
  • 宠物服务 (pet-service): 宠物档案管理、健康记录跟踪
  • 兽医服务 (vet-service): 兽医信息管理、排班安排
  • 预约服务 (appointment-service): 在线预约、时间冲突检测
  • 病历服务 (medical-record-service): 就诊记录、诊断方案管理
  • 同步服务 (sync-service): 数据同步、批量处理

2. 分布式系统特性

  • 服务注册与发现: 基于Nacos的服务治理
  • 配置中心: 统一配置管理,支持动态刷新
  • 分布式事务: 基于Seata的分布式事务管理
  • 熔断降级: Resilience4j实现的容错机制
  • 链路追踪: SkyWalking + Zipkin全链路监控

3. 身份认证与安全

  • OAuth2/OIDC: 基于Keycloak的统一认证
  • RBAC权限控制: 基于角色的细粒度权限管理
  • JWT令牌: 无状态认证机制
  • API安全: 接口级别的访问控制

4. 数据管理

  • 多数据源支持: MySQL主从复制配置
  • 缓存策略: Redis多级缓存优化
  • 数据一致性: Seata分布式事务保证
  • 数据备份: 自动备份和恢复机制

5. 监控与运维

  • 健康检查: Spring Boot Actuator端点
  • 指标收集: Prometheus格式的指标输出
  • 日志聚合: 结构化JSON日志记录
  • 链路追踪: SkyWalking + Zipkin全链路监控

API文档

系统提供完整的OpenAPI 3.0文档,每个微服务都有独立的API文档:

API网关

通过API网关统一访问所有服务:

📊 监控与运维

健康检查

# 检查单个服务健康状态 curl http://localhost:8081/actuator/health # 通过API网关检查所有服务健康状态 curl http://localhost:8080/actuator/health # 检查微服务健康状态汇总 curl http://localhost:8080/actuator/health/details

指标监控

# 获取服务指标数据 curl http://localhost:8081/actuator/metrics # 获取 Prometheus 格式指标 curl http://localhost:8081/actuator/prometheus # 查看JVM指标 curl http://localhost:8081/actuator/metrics/jvm.memory.used

服务信息

# 查看服务信息 curl http://localhost:8081/actuator/info # 查看环境配置 curl http://localhost:8081/actuator/env # 查看Bean定义 curl http://localhost:8081/actuator/beans

常见问题解答 (FAQ)

1. 如何解决 Keycloak 启动失败?

  • 确保 Docker 已正确安装并运行。
  • 检查端口 8080 是否被占用。

2. 前端应用无法连接后端服务?

  • 检查后端服务是否已启动。
  • 确保前端配置中的 API 地址正确。

3. 数据库连接失败?

  • 检查 MySQL 服务是否运行。
  • 验证数据库配置是否正确。

贡献指南

  1. 提交 Issue:描述问题或建议。
  2. Fork 项目:创建自己的分支。
  3. 提交 Pull Request:确保代码符合规范并通过测试。 curl http://localhost:8081/actuator/env
### 日志查看 ```bash # 查看特定服务日志 docker-compose logs -f user-service # 查看所有服务日志 docker-compose logs -f # 查看最近100行日志 docker-compose logs --tail=100

🛠️ 开发指南

开发工具推荐

  • 后端IDE: IntelliJ IDEA Ultimate
  • 前端IDE: VS Code 或 WebStorm
  • 数据库工具: DBeaver / MySQL Workbench
  • API测试: Postman / Insomnia
  • 容器管理: Docker Desktop

代码质量

常用开发命令

# 后端测试 mvn test mvn jacoco:report # 前端开发 cd frontend && pnpm lint cd frontend && pnpm build # 数据库操作 mysql -u root -p < sql/init-database.sql

故障排查

  • 端口冲突: 检查端口占用情况
  • 数据库连接: 验证MySQL服务状态
  • 服务注册: 确认Nacos服务发现
  • 认证问题: 检查Keycloak配置

查看 问题修复记录 获取常见问题的解决方案。

📚 相关文档

文档说明链接
架构设计详细技术架构说明petclinic-archi.md
开发指南开发环境搭建和规范DEVELOPMENT.md
测试报告代码测试覆盖率统计TEST_COVERAGE_SUMMARY.md
生产部署生产环境部署说明petclinic-prd.md
问题修复常见问题解决方案PROBLEM_FIXES_SUMMARY.md
前端修复前端完整修复记录FRONTEND_FIX_COMPLETE.md
医疗记录病历服务配置说明MEDICAL_RECORDS_SETUP.md

📄 许可证

本项目采用 MIT 许可证。

📞 联系方式


🛠️ 开发团队: PetClinic开发团队
⚙️ 技术栈: Spring Boot 3.4.2 + Vue 3.x + Docker + Microservices
📦 版本: v1.0.0
🔄 最后更新: 2025-10-24
✅ 状态: 生产就绪 (参考 验证报告)

About

Spring Boot Pet Clinic 项目演示,展示企业级Java应用开发最佳实践

Language
Java50.8%
Python17.4%
Vue12.9%
TypeScript8.3%
Others10.6%