logo
0
0
Login
user1430<1430487227@qq.com>
docs: 添加中英文双语README文档

Spring PetClinic 示例应用 构建状态构建状态

English Version

在Gitpod中打开 在GitHub Codespaces中打开

通过图表理解Spring Petclinic应用

查看演示文稿

本地运行Petclinic

Spring Petclinic是一个基于Spring Boot的应用,使用MavenGradle构建。您可以从命令行构建jar文件并运行(兼容Java 17或更高版本):

git clone https://github.com/spring-projects/spring-petclinic.git cd spring-petclinic ./mvnw package java -jar target/*.jar

(在Windows上,或者如果您的shell不支持通配符扩展,可能需要明确指定JAR文件名)

运行后可通过http://localhost:8080/访问Petclinic。

petclinic-screenshot

或者直接使用Spring Boot Maven插件运行(代码变更会自动加载,Java源文件变更需要重新编译):

./mvnw spring-boot:run

注意: 如果使用Gradle,可以用./gradlew build构建,jar文件位于build/libs

构建容器镜像

项目中没有Dockerfile,但可以使用Spring Boot构建插件创建容器镜像:

./mvnw spring-boot:build-image

发现Bug或改进建议

我们的问题跟踪器在这里

数据库配置

默认配置使用内存数据库(H2),启动时自动填充数据。H2控制台可通过http://localhost:8080/h2-console访问,使用启动时打印的jdbc:h2:mem:<uuid> URL连接。

也支持MySQL和PostgreSQL持久化数据库。切换数据库类型时需要激活相应profile:

  • MySQL: spring.profiles.active=mysql
  • PostgreSQL: spring.profiles.active=postgres

参考Spring Boot文档了解如何设置active profile。

可以使用Docker启动数据库:

# MySQL docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.1 # PostgreSQL docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:17.0

更多文档:

也可以使用提供的docker-compose.yml文件:

# MySQL docker compose up mysql # PostgreSQL docker compose up postgres

测试应用

开发时推荐使用测试应用:

  • PetClinicIntegrationTests: 使用H2内存数据库
  • MySqlTestApplication: MySQL测试
  • PostgresIntegrationTests: PostgreSQL测试

MySQL测试使用Testcontainers启动Docker容器,PostgreSQL测试使用Docker Compose。

编译CSS

CSS文件petclinic.csspetclinic.scss生成,结合了Bootstrap库。修改scss后需要使用Maven profile "css"重新编译:

./mvnw package -P css

(Gradle没有对应的CSS编译配置)

在IDE中工作

前提条件

需要安装:

步骤

  1. 克隆仓库:

    git clone https://github.com/spring-projects/spring-petclinic.git
  2. 在Eclipse/STS中:

    • 通过文件 -> 导入 -> Maven -> 现有Maven项目导入
    • 使用./mvnw generate-resources或Eclipse启动器生成CSS
    • 右键主类选择运行为 -> Java应用程序
  3. 在IntelliJ IDEA中:

    • 通过文件 -> 打开选择pom.xml
    • 使用Maven生成CSS资源
    • 运行PetClinicApplication主类
  4. 访问应用:

查找特定内容?

Spring Boot配置类或Java属性文件
主类PetClinicApplication
属性文件application.properties
缓存配置CacheConfiguration

其他分支和复刻

主分支spring-projects/spring-petclinic是基于Spring Boot和Thymeleaf的规范实现。spring-petclinic组织中有许多使用不同技术栈的实现。

与其他开源项目的互动

开发Spring Petclinic应用的一个好处是可以直接与许多开源项目合作。我们发现并修复了许多项目中的问题,如Spring、Spring Data、Bean Validation甚至Eclipse!

名称问题
Spring JDBCSPR-10256
Bean ValidationHV-790
Spring DataDATAJPA-292

贡献指南

问题跟踪器是报告问题、请求功能和提交pull request的首选渠道。

提交pull request时请遵循编辑器配置。所有提交消息必须包含Signed-off-by尾部,表示贡献者同意开发者原创证书(DCO)。详情参考博客Hello DCO, Goodbye CLA

许可证

Spring PetClinic示例应用基于Apache 2.0许可证发布。