Enterprise Fullstack Lernpfad
Ein überprüfbarer Weg von Java-Grundlagen bis zu einer vollständigen Enterprise-Anwendung mit Spring Boot, SQL, Security, Angular oder React, Containerbetrieb und Architekturentscheidungen.
1. Zielbild
Am Ende solltest du einfache bis mittlere Enterprise-Anwendungen bauen können:
Backend
REST API mit Java, Spring Boot, Datenbank, Security und Tests.
Frontend
UI mit TypeScript und Angular oder React, inklusive Routing, Forms und API-Anbindung.
Betrieb
Docker, CI/CD, Logs, Health Checks und Grundverständnis für Kubernetes.
Architektur
Modularer Monolith, Microservices, DDD Basics und wartbare Projektstruktur.
2. Technologie-Karte
| Bereich | Muss lernen | Danach / Enterprise |
|---|---|---|
| Backend Sprache | Java LTS, OOP, Collections, Streams | Concurrency, Virtual Threads, JVM-Diagnose |
| Build & Tools | Maven/Gradle, Git, IDE | CI Pipelines, Dependency Management |
| Backend Framework | Spring Boot | Jakarta EE, Quarkus, Micronaut |
| API | REST, JSON, Validation | OpenAPI, GraphQL, API Gateway |
| Daten | SQL, PostgreSQL/MySQL, JPA | Transactions, Redis, Flyway/Liquibase |
| Security | Authentifizierung, Autorisierung, sichere Session | OAuth2, OIDC, BFF, Keycloak, RBAC |
| Testing | JUnit, Mockito | Testcontainers, Contract Tests, E2E |
| Frontend | HTML, CSS, JS, TypeScript | Angular, React, Design Systems |
| DevOps | Docker, CI/CD | Kubernetes, Helm, Observability |
3. Lernpfad in Phasen
- Setup: Git, IDE, Terminal, HTTP, JSON, YAML.
- Java Grundlagen: OOP, Collections, Streams, Exceptions, JUnit.
- Datenbank: SQL, Joins, Indizes, Transaktionen, Datenmodellierung.
- Spring Boot: Controller, Service, Repository, REST, DTOs, Validation.
- Enterprise Backend: Security, OAuth2/OIDC, Migrationen, Caching, Messaging.
- Frontend Basics: HTML, CSS, JavaScript, TypeScript, npm.
- Angular oder React: Components, Routing, Forms, HTTP, State.
- Fullstack: API Integration, CORS, Auth Flow, Pagination, Uploads.
- DevOps: Docker, CI/CD, Kubernetes Basics, Logs, Metrics.
- Architektur: Clean Architecture, DDD, Microservices, Event-driven.
4. Backend: Java Enterprise
Kernstack für Start
Java LTS Maven oder Gradle Spring Boot Spring Web Spring Data JPA PostgreSQL Spring Security JUnit + Mockito Docker
Danach erweitern
Kafka oder RabbitMQ Redis OpenAPI Testcontainers Keycloak Kubernetes Quarkus oder Micronaut Jakarta EE
5. Frontend: Enterprise UI
Kernstack für Start
HTML CSS JavaScript TypeScript Angular oder React REST API Integration Forms Routing Testing
Empfehlung
Angular bietet ein integriertes Framework mit gemeinsamen Konventionen. React ist eine UI-Bibliothek, die bewusst mit Routing, Datenzugriff und Buildsystem kombiniert wird. Wähle zunächst genau eine Variante anhand von Team, Lebenszyklus, Barrierefreiheit und Testbarkeit.
6. Fullstack Integration
Frontend → REST API → Service Layer → Repository → Datenbank
- DTOs statt Entities nach außen geben.
- API Fehler einheitlich formatieren.
- Autorisierung im Backend erzwingen, nicht nur im Frontend verstecken.
- Bevorzugt sichere Session oder BFF verwenden; langlebige Tokens nicht im Browser-Speicher ablegen.
- Pagination, Filtering und Sorting direkt mitdenken.
- OpenAPI Dokumentation pflegen.
7. DevOps, Cloud & Betrieb
- Anwendung lokal mit Docker starten.
- Datenbank über Migrationen versionieren.
- Tests automatisch in CI ausführen.
- Logs strukturiert schreiben.
- Health Endpoint bereitstellen.
- Secrets nicht ins Repository committen.
8. Projekt-Verzeichnis
enterprise-learning-app/
├── backend/
│ ├── src/main/java/com/example/app/
│ │ ├── controller/
│ │ ├── service/
│ │ ├── repository/
│ │ ├── domain/
│ │ ├── dto/
│ │ ├── security/
│ │ └── config/
│ ├── src/main/resources/
│ │ ├── application.yml
│ │ └── db/migration/
│ ├── src/test/java/
│ ├── pom.xml
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── app/ oder components/
│ │ ├── pages/
│ │ ├── services/
│ │ ├── models/
│ │ └── styles/
│ ├── package.json
│ └── Dockerfile
├── compose.yaml
├── README.md
└── docs/
├── architecture.md
├── api.md
└── decisions.md
9. Empfohlene Reihenfolge
- Java + SQL
- Spring Boot REST API
- JPA + PostgreSQL
- Testing
- Security mit JWT/OAuth2
- HTML/CSS/JavaScript
- TypeScript
- Angular oder React
- Fullstack App
- Docker + CI/CD
- Kubernetes Basics
- Architektur, DDD, Messaging, Observability
10. Quellen
- OpenJDK JDK 25
- Oracle Java Downloads / LTS Hinweis
- Spring Boot Dokumentation
- Jakarta EE Spezifikationen
- Quarkus Guides
- Micronaut Framework
- MDN JavaScript Guide
- TypeScript Handbook
- React Learn
- Angular Overview
- OpenAPI Specification
- OAuth 2.0 Security Best Current Practice (RFC 9700)
- Docker Compose Application Model
11. Technologieentscheidungen nachvollziehbar treffen
Eine Technologie wird nicht gewählt, weil sie bekannt oder populär ist. Halte für jede wesentliche Entscheidung dieselben Kriterien fest.
Fachlicher Bedarf
Welche Benutzer, Abläufe, Datenmengen und Qualitätsziele müssen tatsächlich unterstützt werden?
Team und Betrieb
Welche Erfahrung, Supportfähigkeit, Observability und Bereitschaftsdienste sind real vorhanden?
Lebenszyklus
Wie lange wird die Lösung betrieben, wie erfolgen Updates, Migration, Rückbau und Datenübernahme?
Nachweis
Welche kleine Architekturprobe belegt Performance, Sicherheit, Integration und Wartbarkeit vor der Festlegung?
Minimales Entscheidungsprotokoll
- Problem und Randbedingungen beschreiben.
- Mindestens zwei realistische Optionen vergleichen.
- Messbare Entscheidungskriterien und Ausschlussgründe notieren.
- Entscheidung, Risiken und Zeitpunkt der erneuten Prüfung festhalten.
Zwei wichtige Startentscheidungen
Angular oder React: Entscheide nach benötigter Plattformbreite, Teamkonventionen, Barrierefreiheit, Testbarkeit und langfristigem Betrieb. Beide können Enterprise-Anwendungen tragen.
Modularer Monolith oder Microservices: Beginne modular im Monolithen, solange unabhängige Deployments, Teamautonomie oder unterschiedliche Skalierungsprofile keinen belegbaren Mehrwert liefern.
12. Verantwortungs- und Sicherheitsmodell
| Ebene | Verantwortlich für | Darf nicht allein entscheiden |
|---|---|---|
| Frontend | Darstellung, Eingaben, Navigation, Lade- und Fehlerzustände | Berechtigung, Preis und fachliche Invarianten |
| BFF / Gateway | UI-gerechte Aggregation, Session-/Token-Vermittlung, Routing | Zentrale Fachlogik und Datenbesitz |
| Backend | Autorisierung, Use Cases, Transaktionen und fachliche Regeln | Browser-Navigation und UI-Zustand |
| Datenbank | Persistenz, Constraints, Indizes und atomare Änderungen | Servicegrenzen und Benutzerrechte |
| Plattform | Deployment, Secrets, Telemetrie, Skalierung und Recovery | Fachliche Korrektheit |
Durchgängiger Request-Nachweis
Benutzeraktion → Frontend-Zustand und validierte Eingabe → HTTPS-Aufruf gegen versionierten API-Vertrag → Authentifizierung und serverseitige Autorisierung → Use Case und Transaktion → Datenänderung oder Event → strukturierte Antwort und sichtbarer UI-Zustand → korrelierbare Logs, Metriken und Trace
- Das Frontend enthält keine Secrets und ist niemals die Autorisierungsinstanz.
- CORS ersetzt weder Authentifizierung noch Autorisierung.
- Externe Fehlermeldungen enthalten keine internen Stacktraces.
- Sensible Daten erscheinen weder in Browser-Logs noch unkontrolliert in Telemetrie.
13. 12-Wochen-Plan
| Woche | Schwerpunkt | Lieferbarer Nachweis |
|---|---|---|
| 1 | Systemkontext, HTTP, Git und Umgebung | Kontextbild und lauffähiger Build |
| 2 | Java-Domänenmodell und Unit Tests | Getestete Fachregeln ohne Framework |
| 3 | SQL, Schema und Migrationen | Versioniertes Schema mit Testdaten |
| 4 | Spring-Boot-API und Fehlerformat | CRUD-API mit Validierung und Problemantworten |
| 5 | JPA, Transaktionen und Integrationstests | Persistenter Use Case mit Datenbanktest |
| 6 | OpenAPI und Clientgrenze | Geprüfter Vertrag und typisierter Client |
| 7 | TypeScript und UI-Grundstruktur | Navigierbare Oberfläche mit Mock-Daten |
| 8 | Angular oder React, Formulare und Zustand | Vollständiger vertikaler Use Case |
| 9 | OIDC/Session, Rollen und Bedrohungsmodell | Geschützter Use Case mit Negativtests |
| 10 | Container und CI | Start mit compose.yaml und Pipeline |
| 11 | Logs, Metriken, Trace und Diagnose | Korrelierbarer Request und Betriebsnotiz |
| 12 | Qualitätsgates, Review und Demo | Capstone-Abnahme und Folgeplan |
Wochenrhythmus: Verstehen → klein bauen → testen → erklären → Entscheidung dokumentieren.
14. Capstone und Abschlussnachweis
Baue eine kleine Kunden- und Vorgangsverwaltung mit den Rollen Sachbearbeitung, Teamleitung und Administration. Ein vertikaler Kernablauf reicht; durchgängige Qualität ist wichtiger als Funktionsmenge.
Backend & Daten
Spring Boot, klare Schichten, relationale Migrationen, fachliche Invariante und versionierter OpenAPI-Vertrag.
Frontend
Angular oder React mit Routing, Formular sowie Lade-, Leer- und Fehlerzustand.
Security & Tests
Serverseitige Autorisierung, Unit- und Integrationstests sowie ein kritischer End-to-End-Test.
Betrieb
compose.yaml, Health-Endpunkt, strukturierte Logs, Correlation-ID und kurze Diagnoseanleitung.
Abnahmekriterien
- Ein frischer Checkout lässt sich reproduzierbar bauen und starten.
- Happy Path, Validierungsfehler, fehlende Berechtigung und technischer Fehler sind demonstrierbar.
- Frontend und Backend stimmen mit dem API-Vertrag überein.
- Keine Secrets, Stacktraces oder sensiblen Beispieldaten liegen im Repository oder Browser.
- Mindestens drei Entscheidungen enthalten Kontext, Alternativen, Folgen und Prüfdatum.
- Die Lösung kann in 15 Minuten vom Benutzerproblem bis zu Deployment und Diagnose erklärt werden.