Java Anwendungsentwicklung – Tag 10 von 10 (🔴 KOPFNUSS)
Von Franz-Martin, CTO bei Java Fleet Systems Consulting
Schwierigkeit: 🔴 KOPFNUSS (Optional/Anspruchsvoll)
Voraussetzungen: Tag 1-9 abgeschlossen
🗺️ Deine Position im Kurs
| Tag | Thema | Niveau | Status |
|---|---|---|---|
| 1 | Die Desktop-Ära: Warum GUIs? | 🟢 Grundlagen | ✅ Abgeschlossen |
| 2 | AWT & Swing Grundlagen | 🟢 Grundlagen | ✅ Abgeschlossen |
| 3 | Layouts & Event-Handling | 🟢 Grundlagen | ✅ Abgeschlossen |
| 4 | Komplexe Swing-Komponenten | 🟡 Fortgeschritten | ✅ Abgeschlossen |
| 5 | JavaFX: Die „moderne“ Alternative | 🔴 KOPFNUSS | ✅ Abgeschlossen |
| 6 | JDBC Grundlagen | 🟢 Grundlagen | ✅ Abgeschlossen |
| 7 | JDBC Best Practices | 🟡 Fortgeschritten | ✅ Abgeschlossen |
| 8 | JPA Einführung | 🟢 Grundlagen | ✅ Abgeschlossen |
| 9 | JPA CRUD & Queries | 🟡 Fortgeschritten | ✅ Abgeschlossen |
| → 10 | Integration & Ausblick | 🔴 KOPFNUSS | 👉 FINALE! |
Legende: 🟢 Einsteiger-freundlich | 🟡 Erfordert Grundlagen | 🔴 Optional/Anspruchsvoll
⚡ Das Wichtigste in 30 Sekunden
Tag 10 = Der Abschluss!
Du bringst heute alles zusammen:
- ✅ GUI (Tag 2-5) + Datenbank (Tag 6-9)
- ✅ Saubere Schichtenarchitektur
- ✅ Eine vollständige Desktop-Anwendung
- ✅ Ausblick: Wie Spring Boot alles vereinfacht
🟢 Die Schichtenarchitektur

Abbildung 1: GUI → Service → Repository → Database
Die 4 Schichten
| Schicht | Verantwortung | Klassen |
|---|---|---|
| Präsentation (UI) | Anzeige, Benutzereingaben | PersonenFrame, PersonDialog |
| Service | Geschäftslogik, Validierung | PersonService |
| Repository | Datenbankzugriff | PersonRepository |
| Datenbank | Persistenz | H2/MySQL/PostgreSQL |
Warum Schichten?
// ❌ SCHLECHT: UI greift direkt auf DB zu
public class PersonenFrame {
public void speichern() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(person); // UI kennt JPA-Details!
em.getTransaction().commit();
}
}
// ✅ GUT: UI kennt nur den Service
public class PersonenFrame {
private final PersonService service;
public void speichern() {
service.save(person); // Sauber!
}
}
Vorteile:
- Jede Schicht hat EINE Verantwortung
- Änderungen bleiben lokal (DB wechseln = nur Repository ändern)
- Testbar (Mock-Service für UI-Tests)
🟡 Die vollständige Anwendung
So sieht es aus:
┌──────────────────────────────────────────────────────────┐ │ 👥 Personenverwaltung - Java Fleet Systems │ ├──────────────────────────────────────────────────────────┤ │ ➕ Neu │ ✏️ Bearbeiten │ 🗑️ Löschen │ 🔄 Refresh │ ├──────────────────────────────────────────────────────────┤ │ ID │ Name │ Alter │ E-Mail │ ├───────┼────────────────────┼─────────┼───────────────────┤ │ 1 │ Max Mustermann │ 28 │ max@example.com │ │ 2 │ Lisa Schmidt │ 34 │ lisa@example.com │ │ 3 │ Tom Müller │ 22 │ tom@example.com │ ├──────────────────────────────────────────────────────────┤ │ Suche: [________________] [Suchen] [Alle anzeigen] │ └──────────────────────────────────────────────────────────┘
Der Code-Aufbau
src/main/java/de/javafleet/integration/
├── PersonenApp.java ← Main-Klasse
├── entity/
│ └── Person.java ← JPA Entity
├── repository/
│ └── PersonRepository.java ← Datenbankzugriff
├── service/
│ └── PersonService.java ← Geschäftslogik
└── ui/
├── PersonenFrame.java ← Hauptfenster
├── PersonTableModel.java ← TableModel
└── PersonDialog.java ← Bearbeiten-Dialog
🔴 AUSBLICK: Spring Boot
So sieht das HEUTE aus (Tag 6-9)

Abbildung 2: Manuell vs. Spring Boot – Der Unterschied
Mit Spring Boot wird alles einfacher!
persistence.xml (30+ Zeilen) wird zu:
# application.properties spring.datasource.url=jdbc:h2:mem:db spring.jpa.hibernate.ddl-auto=create
PersonRepository (50+ Zeilen) wird zu:
public interface PersonRepository
extends JpaRepository<Person, Long> {
List<Person> findByNameContaining(String name);
}
// Das ist ALLES! Spring generiert die Implementation.
EntityManager-Handling wird zu:
@Service
public class PersonService {
@Autowired
private PersonRepository repository;
@Transactional // Automatische Transaction!
public Person save(Person person) {
return repository.save(person);
}
}
🟡 Der Weg weiter

Abbildung 3: Dein Java-Lernweg
Empfohlene nächste Schritte
| Priorität | Thema | Warum? |
|---|---|---|
| 🥇 | Spring Boot | Das was alle verwenden |
| 🥇 | Spring Data JPA | Repository in 3 Zeilen |
| 🥈 | REST APIs | Web-Services bauen |
| 🥈 | JUnit + Mockito | Testen lernen |
| 🥉 | Docker | Anwendungen deployen |
Ressourcen
- Spring Boot Getting Started
- Baeldung Spring Tutorials
- Java Fleet Blog – Weitere Kurse!
💬 Real Talk: Der letzte Tag
Java Fleet Büro, Freitag 17:00 Uhr.
Nova: „Franz-Martin… es ist geschafft?“
Franz-Martin: (lächelt) „10 Tage. Von ‚Was ist eine GUI?‘ bis zur vollständigen Anwendung.“
Nova: „Ehrlich? Am Anfang hab ich nicht geglaubt, dass ich das schaffe.“
Franz-Martin: „Das sagen alle. Und dann schaffen sie es doch.“
Nova: „Was jetzt? Ich meine… was kommt als nächstes?“
Franz-Martin: „Spring Boot. Das macht alles was du gelernt hast zehnmal einfacher.“
Nova: „Warum haben wir dann nicht gleich…?“
Franz-Martin: „Weil du jetzt VERSTEHST was Spring Boot im Hintergrund macht. Wenn etwas schiefgeht, kannst du debuggen. Du weißt was eine Transaction ist, was ein Repository macht, warum PreparedStatement wichtig ist.“
Nova: „Also war das alles Grundlagenarbeit?“
Franz-Martin: „Genau. Du hast jetzt das Fundament. Der Rest ist nur noch drauf bauen.“
Nova: „Danke, Franz-Martin.“
Franz-Martin: „Danke dir, Nova. Jetzt geh nach Hause. Montag sprechen wir über Spring Boot.“
✅ Checkpoint
📝 Quiz
Frage 1: Warum sollte die UI nicht direkt auf das Repository zugreifen?
A) Es ist verboten
B) Trennung der Verantwortlichkeiten (Single Responsibility)
C) Es ist langsamer
D) Es funktioniert nicht
Frage 2: Was macht der Service in einer Schichtenarchitektur?
A) Die Datenbank abfragen
B) Die GUI anzeigen
C) Geschäftslogik und Validierung
D) SQL generieren
Frage 3: Was generiert Spring Data JPA automatisch?
A) Die Entity
B) Die UI
C) Die Repository-Implementation
D) Die Datenbank
📝 Quiz-Lösungen
Frage 1: ✅ B – Trennung der Verantwortlichkeiten
Jede Schicht hat eine Aufgabe. Die UI zeigt an, der Service validiert, das Repository speichert.
Frage 2: ✅ C – Geschäftslogik und Validierung
Der Service enthält die „Regeln“ der Anwendung. Ist der Name gültig? Darf dieser User das?
Frage 3: ✅ C – Die Repository-Implementation
Du schreibst ein Interface, Spring generiert die komplette Implementation mit allen CRUD-Methoden.
📦 Downloads
| Projekt | Inhalt | Download |
|---|---|---|
| java-anwendungsentwicklung-tag10.zip | Vollständige integrierte Anwendung | ⬇️ Download |
Quick Start:
mvn exec:java # Startet die Anwendung
🎉 KURS ABGESCHLOSSEN!
Was du in 10 Tagen gelernt hast:
GUI-Entwicklung (Tag 1-5):
- ✅ AWT & Swing Grundlagen
- ✅ Layouts & Event-Handling
- ✅ JTable, JTree, JList
- ✅ JavaFX Einblick
Datenbankzugriff (Tag 6-9):
- ✅ JDBC & PreparedStatement
- ✅ Connection Pooling & Transactions
- ✅ JPA & Hibernate
- ✅ JPQL & Relationships
Integration (Tag 10):
- ✅ Schichtenarchitektur
- ✅ Vollständige Desktop-Anwendung
- ✅ Ausblick auf Spring Boot
Du bist bereit für:
- Spring Boot & Spring Data JPA
- Web-Entwicklung mit REST APIs
- Professionelle Java-Projekte
🙏 Danke!
Danke dass du diesen Kurs gemacht hast!
Feedback? franz-martin@java-developer.online
Mehr Kurse? java-developer.online
© 2025 Java Fleet Systems Consulting | java-developer.online
Bis zum nächsten Kurs! 🚀

