<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<document>
<title>Softwareentwicklung mit Spring</title>
<cid>KIB-SES</cid>
<sapsubmodule>P221-0211</sapsubmodule>
<bkey>ki2</bkey>
<ctypes>
<hours>2</hours>
<type>V</type>
<hours>2</hours>
<type>PA</type>
</ctypes>
<cp>5</cp>
<semester>5</semester>
<mandatory>nein</mandatory>
<language>Deutsch</language>
<exam>Projektarbeit + mündliche Prüfung</exam>
<curriculum>
<curriculum_entry>
<cid>KIB-SES</cid>
<branch>Kommunikationsinformatik</branch>
<semester>5</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIB-SES</cid>
<branch>Praktische Informatik</branch>
<semester>5</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIB-SES</cid>
<branch>Praktische Informatik</branch>
<semester>5</semester>
<mandatory_tag>Wahlpflichtfach</mandatory_tag>
</curriculum_entry>
</curriculum>
<workload>
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 60 Veranstaltungsstunden (= 45 Zeitstunden). Der Gesamtaufwand des Moduls beträgt bei 5 Creditpoints 150 Stunden (30 Stunden/ECTS Punkt). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 105 Stunden zur Verfügung.
</workload>
<prerequisites>
</prerequisites>
<prerequisitesfor>
</prerequisitesfor>
<convenor>Prof. Dr. Markus Esch</convenor>
<convenor-person-key>mes</convenor-person-key>
<lecturers>
<lecturer>Prof. Dr. Markus Esch</lecturer>
<lecturer-person-key>mes</lecturer-person-key>
</lecturers>
<objectives>Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage ...
- die grundlegenden Konzepte des Spring-Frameworks zu erklären. 
- das Spring Core Framework und SpringBoot anzuwenden. 
- Web-Anwendungen, Web-Services und Desktop-Anwendungen mit Spring und SpringBoot zu entwickeln. </objectives>
<content>Die Veranstaltung führt zunächst in die grundlegenden Konzepte des Spring-Frameworks ein. Darauf aufbauend wird SpringBoot als moderne Vereinfachung eingeführt und im weiteren Verlauf des Kurses die Kombination aus Spring-Core und SpringBoot verwendet. Im Laufe des Kurses wird eine kleine Beispielanwendung entwickelt, die auch in den realen Betrieb übernommen werden soll.

1. Einführung:
- Was ist Spring?
- Einführung der Basiskonzepte
- Aufbau eines Spring-Projekts

2. Kernkonzepte von Spring
- Inversion of Control
- Dependency Injection
- Deklaration von Spring-Beans
- Konfiguration von Spring Beans
- Annotationsbasierte Konfiguration
- Javabasierte Konfiguration

3. Aspektorientierte Programmierung (AOP)
- Was ist AOP?
- Grundbegriffe der AOP
- AOP mit Spring
- Vor- und Nachteile von AOP

4. SpringBoot
- Was ist SpringBoot?
- Aufbau eines SpringBoot-Projekts
- Vorteile von SpringBoot
- Einfache Terminalanwendungen mit SpringBoot

5. Weiterführende Spring-Funktionen
- Verwendungen von benutzerdefinierten Konfigurationen
- Ereignisbehandlung
- Ressourcen-Abstraktion
- Typkonvertierungen mit ConversionService
- Verwendung von JSON
- Scheduling

6. Anbindung relationaler Datenbanken
- Wiederholung Java Peristence API (JPA)
- JdbcTemplate
- Verwendung des JPARepository-Interface
- Formulierung von Standard-Abfragen
- Formulierung von benutzerdefinierten Abfragen
- Best Practices

7. Testgetriebene Entwicklung mit Spring
- Einführung Testgetriebene Entwicklung
- Spring-spezifische Elemente zum Testen
- Mocking-Framework Mockito
- Kombination von Spring und Mockito
- Testen der Datenzugriffsschicht

8. JavaFX und SpringBoot
- Vorteile der Kombinatioin JavaFX und SpringBoot
- Wiederholung JavaFX
- Realisierung mit FxWeaver

9. Webanwendungen mit SpringBoot
- SpringMVC
- Templating-Framework Thymeleaf
- RESTful API
- Auswerten von Anfragen
- Generierung von dynamischen Inhalten
- Webanwendungen mit SpringSecurity absichern
- Ausnahmebehandlung und Fehlermeldungen
- Asynchrone Anfragen
- Best Practices
- Testen der Webschicht
- Dokumentation einer RESTful API mit OpenAPI</content>
<literature>Christian Ullenboom : &quot;Spring Boot 3 und Spring Framework 6 - Das umfassende Handbuch&quot;, Rheinwerk Computing</literature>
<offered>
</offered>
<moduldb-query>Wed May 20 12:02:13 CEST 2026, CKEY=psms, BKEY=ki2, CID=[?], LANGUAGE=de, DATE=20.05.2026</moduldb-query>
</document>
