# spring-projects/spring-petclinic

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/spring-projects-spring-petclinic).**

8,972 stars · 28,328 forks · CSS · apache-2.0

## Links

- GitHub: https://github.com/spring-projects/spring-petclinic
- awesome-repositories: https://awesome-repositories.com/repository/spring-projects-spring-petclinic.md

## Description

Spring PetClinic is a reference application for the Spring Framework, serving as a complete implementation that demonstrates the architecture and best practices for building Java services. It functions as a veterinary practice management system designed to track pet owners, animal records, and clinical visit histories.

The project provides a practical example of a containerized web application, illustrating how to integrate a Java application with relational databases like MySQL and PostgreSQL. It serves as a guide for learning how to develop an application using the model-view-controller pattern and managing its deployment via container images.

The system covers a broad set of capabilities, including clinical data maintenance, dynamic web interface rendering, and input data validation. It incorporates infrastructure features such as dependency injection, in-memory caching, and profile-based configuration for different environments.

The implementation includes integration testing against containerized databases and health monitoring endpoints to track application status and cache performance.

## Tags

### Business & Productivity Software

- [Veterinary Practice Management](https://awesome-repositories.com/f/business-productivity-software/veterinary-practice-management.md) — Provides a complete system for managing veterinary clinic operations, including pet and owner records. ([source](https://github.com/spring-projects/spring-petclinic/blob/main/settings.gradle))
- [Veterinary Practice Management](https://awesome-repositories.com/f/business-productivity-software/medical-practice-management/veterinary-practice-management.md) — Implements a complete system for tracking pet owners, animal records, and veterinary visit histories.

### Education & Learning Resources

- [Reference Applications](https://awesome-repositories.com/f/education-learning-resources/java-virtual-machine-learning-resources/spring-framework-resources/reference-applications.md) — Serves as a complete reference implementation demonstrating Spring Framework architecture and best practices.
- [Spring Framework Resources](https://awesome-repositories.com/f/education-learning-resources/java-virtual-machine-learning-resources/spring-framework-resources.md) — Provides educational code examples for building enterprise applications using the Spring ecosystem.

### Part of an Awesome List

- [Patient Record Management](https://awesome-repositories.com/f/awesome-lists/productivity/clinical-documentation/patient-record-management.md) — Maintains a persistent relational database of pet owners, animals, and visit histories. ([source](https://github.com/spring-projects/spring-petclinic#readme))

### Data & Databases

- [Object-Relational Mapping](https://awesome-repositories.com/f/data-databases/object-relational-mapping.md) — Employs object-relational mapping to bridge Java objects with relational database tables.
- [Relational Database Storage](https://awesome-repositories.com/f/data-databases/relational-database-storage.md) — Integrates with relational databases like MySQL and PostgreSQL for persistent data storage.
- [Database Configurations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/database-configurations.md) — Allows configuration of different database backends through application settings. ([source](https://github.com/spring-projects/spring-petclinic#readme))
- [Runtime Backend Switching](https://awesome-repositories.com/f/data-databases/runtime-backend-switching.md) — Enables switching between in-memory and persistent relational databases via environment profiles. ([source](https://github.com/spring-projects/spring-petclinic/blob/main/README.md))

### Graphics & Multimedia

- [Web Page Rendering](https://awesome-repositories.com/f/graphics-multimedia/web-page-rendering.md) — Renders a dynamic web user interface by interpreting HTML and CSS templates. ([source](https://github.com/spring-projects/spring-petclinic/blob/main/pom.xml))

### Software Engineering & Architecture

- [Spring MVC Implementations](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks/spring-mvc-implementations.md) — Implements the Spring MVC architecture to manage web requests and render view templates.
- [Model-View-Controller Patterns](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/model-view-controller-patterns.md) — Follows the Model-View-Controller pattern to separate business logic, data models, and the user interface.
- [Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection.md) — Implements dependency injection to decouple application services and repositories for better maintainability.

### User Interface & Experience

- [HTML Template Renderers](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/template-engines/server-side-rendering-engines/html-template-renderers.md) — Uses a server-side template engine to render dynamic HTML pages based on data models.

### Web Development

- [Web Applications](https://awesome-repositories.com/f/web-development/web-applications.md) — Implements a full-stack web application that manages user interactions and data delivery.
- [Embedded Web Servers](https://awesome-repositories.com/f/web-development/embedded-web-servers.md) — Includes an embedded web server to run the application without needing a separate installation.
- [Form Data Validation](https://awesome-repositories.com/f/web-development/form-data-validation.md) — Enforces business rules and data integrity constraints on web form submissions. ([source](https://github.com/spring-projects/spring-petclinic/blob/main/pom.xml))
- [Database Integration Examples](https://awesome-repositories.com/f/web-development/java/database-integration-examples.md) — Demonstrates integration with MySQL and PostgreSQL databases using Spring Data and JPA.

### DevOps & Infrastructure

- [Environment Configuration Profiles](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/configuration-resolution-engines/environment-configuration-profiles.md) — Provides environment-specific configuration profiles to switch between development and production settings.
- [Automated Testing Containers](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/docker-container-execution/automated-testing-containers.md) — Utilizes isolated containers to run integration tests against real database instances.
- [Docker Image Building](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/docker-image-building.md) — Builds deployable container images from source code using specialized build plugins. ([source](https://github.com/spring-projects/spring-petclinic/blob/main/README.md))
- [Containerized Application Deployments](https://awesome-repositories.com/f/devops-infrastructure/containerized-application-deployments.md) — Packages the web service into containers for consistent deployment across different environments.
- [Containerized Spring Boot Applications](https://awesome-repositories.com/f/devops-infrastructure/containerized-spring-boot-applications.md) — Ships as a containerized web application designed for consistent deployment across different environments.
- [Service Orchestration Configurations](https://awesome-repositories.com/f/devops-infrastructure/service-orchestration-configurations.md) — Orchestrates the deployment of the application and its database dependencies using service configurations. ([source](https://github.com/spring-projects/spring-petclinic/blob/main/docker-compose.yml))

### Testing & Quality Assurance

- [Integration Testing](https://awesome-repositories.com/f/testing-quality-assurance/integration-testing.md) — Runs application tests against real database instances in containers to verify system behavior. ([source](https://github.com/spring-projects/spring-petclinic#readme))
