这是一个基于Spring PetClinic的改进版本,集成了腾讯云代码大模型Copilot功能,用于演示AI辅助开发能力。该项目是一个宠物诊所管理系统,包含宠物主人管理、宠物信息管理、兽医管理和就诊记录等核心功能。
git clone https://cnb.cool/dylancheong/copilot-petclinic.git
cd copilot-petclinic
./mvnw spring-boot:run
访问应用: http://localhost:8081
默认配置: H2内存数据库,无需额外配置即可运行
使用外部数据库:
# 使用Docker Compose启动MySQL
docker-compose up mysql
# 使用Docker Compose启动PostgreSQL
docker-compose up postgres
# 使用MySQL配置运行应用
./mvnw spring-boot:run -Dspring.profiles.active=mysql
# 使用PostgreSQL配置运行应用
./mvnw spring-boot:run -Dspring.profiles.active=postgres
数据库连接信息:
localhost:3306/petclinic (用户名/密码: petclinic/petclinic)localhost:5432/petclinic (用户名/密码: petclinic/petclinic)http://localhost:8081/h2-console (JDBC URL: jdbc:h2:mem:testdb)项目已配置CNB持续集成流水线,包含以下阶段:
流水线配置文件: .cnb.yml
推荐使用:
遵循Google Java风格指南:
./mvnw spotless:apply
@WebMvcTest进行控制器层测试# 运行所有测试
./mvnw test
# 运行特定测试类
./mvnw test -Dtest=*ControllerTests
# 运行单个测试方法
./mvnw test -Dtest=OwnerControllerTests#testFindOwners
# 生成测试覆盖率报告
./mvnw jacoco:report
# 检查代码风格
./mvnw checkstyle:check
# 自动格式化代码
./mvnw spotless:apply
# 完整构建和打包
./mvnw clean package
src/main/java/org/springframework/samples/petclinic/ ├── model/ # 基础实体和共享领域对象 ├── owner/ # 宠物主人领域: Owner, Pet, Visit实体 + OwnerController + OwnerRepository ├── vet/ # 兽医领域: Vet, Specialty实体 + VetController + VetRepository ├── system/ # 横切关注点: 配置、缓存、错误处理 └── web/ # 共享Web组件和格式化器
项目采用领域驱动的包结构,每个业务领域都有自己的包,包含所有相关组件:
BaseEntity - 为所有实体提供ID字段NamedEntity extends BaseEntity - 添加name字段Person extends BaseEntity - 为人员实体添加firstName/lastName字段@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)@ManyToMany(fetch = FetchType.EAGER)ModelAndView对象@Valid, @NotBlank)PetValidator)Pageable和Page支持分页# 构建Docker镜像
docker build -t petclinic .
# 运行容器
docker run -p 8081:8081 petclinic
default: H2内存数据库 (application.properties中database=h2)mysql: MySQL数据库配置 (application-mysql.properties)postgres: PostgreSQL数据库配置 (application-postgres.properties)我们欢迎贡献!请遵循以下步骤:
git checkout -b feature/your-feature)./mvnw spotless:apply && ./mvnw testgit commit -am 'Add some feature')git push origin feature/your-feature)开发规范:
问题跟踪: issues
Apache License 2.0