Skip to content

Cloud / Examples / Spring PetClinic

Spring PetClinic

The classic Spring Boot sample: a veterinary clinic app with controllers, repositories, and a relational database.

Java spring-projects/spring-petclinic @ 500158f · committed Sep 29, 2026 · analyzed Oct 25, 2026 · computed from the code, no AI

14flows traced across layers
15API routes
6data tables
2outside services
33runtime packages

How requests move through it

Each line follows one request from where it starts to where it ends. Click a file to open that exact line on GitHub.

  1. RouteGET /owners/newOwnerController.java:72Codeowner/OwnerController.javaOwnerController.java:1Codeowner/OwnerRepository.javaOwnerRepository.java:1TableownersOwner.java:48
  2. RoutePOST /owners/newOwnerController.java:77Codeowner/OwnerController.javaOwnerController.java:1Codeowner/OwnerRepository.javaOwnerRepository.java:1TableownersOwner.java:48
  3. RouteGET /vets.htmlVetController.java:45Codevet/VetController.javaVetController.java:1Codevet/VetRepository.javaVetRepository.java:1TablevetsVet.java:43

Data model

ownerspetsspecialtiestypesvetsvisits

Technology

Nothing in the technology setup needs attention.

Runtime

Java 17Gradle + Mavenno lockfile

Outside services

  • MySQL database
  • PostgreSQL database

Packages by role 33 runtime, 19 for development

Frameworksspring-boot4.1.0spring-boot-starter-thymeleafspring-boot-starter-thymeleafspring-boot-starter-webmvcspring-boot-starter-webmvc
Interfacebootstrap${webjarsBootstrapVersion}bootstrap5.3.8font-awesome${webjarsFontawesomeVersion}font-awesome4.7.0webjars-locator-lite${webjarsLocatorLiteVersion}webjars-locator-lite1.1.3
Data and storageh2h2mysql-connector-jmysql-connector-jpostgresqlpostgresql+2 more
Validationspring-boot-starter-validationspring-boot-starter-validation
Othercache-apicache-apicaffeinecaffeinejakarta.xml.bind-apijakarta.xml.bind-api+6 more

Security and AI-agent checks

0 critical · 0 high · 0 medium · 0 low. Includes checks of files AI coding agents read.

  • No critical, high, or medium security findings.
All 15 routes and pages

Limits of this report

  • Java and C/C++ imports do not map cleanly to package names, so usage is not measured for those packages.
  • "No imports found" means no import, script, or config mention was seen. A package can still be used another way, so confirm before removing it.
  • Static analysis reads the code; it does not run it. A missing flow means it could not be proven from the source, not that it does not exist.
  • Engine 2026-10-25.nextjs (0c1481d).

See your own repository like this