JEnterprise Senior Java Workbench
Referenzprojekt 3 · Production Path

Spring Boot Orders

Ein vollständiger Java-21-Pfad von der fachlichen Invariante bis zu REST, PostgreSQL, Security, Migration, Architekturtest und Telemetrie. Nutze die Seite während Entwurf und Umsetzung: Arbeite an einem konkreten Codepfad und sichere Fachverhalten, Abhängigkeiten und Wartbarkeit mit passenden Tests.

Java 21

Spring Boot 4.1

REST, Validation, Security, Actuator und OpenTelemetry in einer konsistenten Runtime.

Daten

PostgreSQL + Flyway

Produktives Schema, JPA-Mapping, Optimistic Locking und echte Containerintegration.

Qualität

TDD + ArchUnit

Schnelle Domain-/Use-Case-Tests, Architekturregeln und explizites Docker-Profil.

Laufzeitfluss der Spring-Boot-Orders-Anwendung
Projektstruktur und Verantwortlichkeiten

Die Pakete spiegeln fachliche und technische Verantwortlichkeiten wider. Die Domäne bleibt frei von Spring, JPA und Servlet APIs.

TEXT
spring-boot-orders/
├── src/main/java/.../domain
├── src/main/java/.../application
├── src/main/java/.../infrastructure
│   ├── persistence
│   ├── web
│   ├── security
│   └── observability
├── src/main/resources/db/migration
├── src/test/java
├── docs
├── scripts
├── compose.yaml
├── Dockerfile
└── pom.xml
Bereich Verantwortung Wichtige Regel
domain Aggregate, Value Objects, Ports Keine Frameworkabhängigkeit
application Use Cases und Transaktionsgrenze Keine Adapterabhängigkeit
infrastructure/web HTTP, Validation, Problem Details Kein direkter JPA-Zugriff
infrastructure/persistence JPA, Mapping, Spring Data Implementiert Domain-Port
REST API und Security

Lesen und Schreiben sind rollenbasiert getrennt. Health und Info bleiben für Plattformprobes erreichbar; weitere Actuator-Endpunkte sind geschützt.

HTTP
POST /api/orders
Authorization: Basic writer writer
Content-Type: application/json

{
  "customerId": "customer-4711",
  "items": [{"productId":"java-workbench","quantity":2,"unitPrice":49.90,"currency":"EUR"}]
}
Produktionshinweis: Die lokalen Basic-Auth-Konten dienen nur der Demonstration. Ein reales System verwendet OIDC/OAuth2 und externe Identitäten.
Datenbank und Migration

Flyway ist Schema-Owner. Hibernate verwendet ddl-auto: validate. Die Migrationen erzeugen Orders, Positionen, Constraints und Indizes.

Der PostgreSQL-Integrationstest verbindet Testcontainers über @ServiceConnection mit der Spring-Boot-Anwendung.

Tests und Architekturregeln
  • Domain- und Application-Tests ohne Spring.
  • ArchUnit für Framework- und Paketgrenzen.
  • Container-IT für PostgreSQL, Flyway, JPA und den vollständigen Use Case.
BASH
# Statische Prüfung ohne Maven und Docker
scripts/check-project.sh

# PostgreSQL starten und schnelle Tests ausführen
docker compose up -d postgres
./mvnw test

# Anwendung starten
./mvnw spring-boot:run

# Realer PostgreSQL-Integrationstest
./mvnw -Pcontainer-it verify
Observability und Betrieb

Correlation IDs erscheinen in Antwortheader und MDC. Fachliche Metriken zählen Orders und ihren Wert pro Währung. Traces können über den Spring-Boot-OpenTelemetry-Starter per OTLP exportiert werden.

RequestCorrelation IDTraceUse CaseMetricOTLP
Dokumentierte Entwurfsmuster

Repository, Adapter, Strategy, Application Service, DTO, Mapper, Exception Translator, Intercepting Filter und Composition Root sind im Code markiert und zusätzlich dokumentiert.

⌂ Cockpit