Am 10. Juni 2026 traf sich die Java User Group Münster zu ihrem Vortragsabend bei der LVM Versicherung am Kolde-Ring.
Auf der Agenda stand das Thema Agentic AI, vorgetragen von Lars Röwekamp.
Die trion GmbH gehört zu den Hauptsponsoren der User Group und unterstützt damit den fachlichen Austausch in der Region.
Den Abend organisierte und moderierte Thomas Kruse.
Agentic AI hat deutlich über 100 Teilnehmer angezogen, was die Relevanz unterstreicht.
Large Language Models sind längst kein Forschungsthema mehr – sie landen in Produktivanwendungen.
Spring AI bringt die gewohnte Spring-Philosophie in die KI-Integration: einheitliche Abstraktionen über verschiedene Anbieter, automatische Konfiguration per Spring Boot und typsichere APIs.
Dieser Beitrag zeigt, wie man in wenigen Schritten einen ChatClient aufbaut, Prompts parametrisiert und strukturierte Java-Objekte aus Sprachmodell-Antworten gewinnt.
Wie geht es meiner Anwendung eigentlich?
Wer hierauf eine präzise Antwort haben möchte, muss die richtigen Daten sammeln.
Tut man es nicht, ist man blind unterwegs und kann bei Problemen erst spät reagieren.
In diesem Artikel beschreibe ich daher, wie man einfach und standardisiert Observability-Daten seiner Spring-Boot-Anwendung sammelt.
Die IP-Adresse eines Clients stellt für Web-APIs einen wichtigen Datenpunkt dar.
Sie wird für Anwendungsfälle wie der Personalisierung von Diensten, Protokollierungen und auch für Sicherheitsaspekte wie z.B. Rate Limiting benötigt.
In diesem Artikel soll es daher darum gehen, wie sich die tatsächliche IP-Adresse eines Clients in einer Spring Boot Anwendung zuverlässig und sicher ermitteln lässt.
Um eine Anwendung vor unliebsamen Traffic wie Spam oder andere Formen von automatisierten Requests zu schützen, können Rate Limits genutzt werden.
In diesem Artikel beschreibe ich, wie sich Rate Limits pro IP-Adresse in einer Spring Boot Anwendung umsetzen lassen.
Im heutigen Software-Entwicklungsalltag ist Security ein entscheidendes Thema.
Moderne Java-Anwendungen bestehen zu einem erheblichen Teil aus Fremdbibliotheken.
Diese sollten regelmäßig auf den neusten Stand gebracht werden, auch um möglichen Sicherheitslücken entgegenzuwirken.
Wie im Vorgängerartikel Build-Warnungen bei Dependency-Updates beschrieben, machen externe Abhängigkeiten oft über 90% des Codes in Microservices aus.
Neben der Aktualität der Bibliotheken ist es besonders wichtig, bekannte Sicherheitslücken (CVEs) zu erkennen und rechtzeitig Gegenmaßnahmen einzuleiten.
Das OWASP Dependency-Check-Maven-Plugin bietet eine praktische Lösung, um aus dem Build-Prozess heraus auf mögliche Sicherheitslücken in Abhängigkeiten aufmerksam zu machen.
Im Folgenden stelle ich vor, wie sich das Plugin in eine Spring-Boot-Anwendung sowie eine GitLab CI-Pipeline integrieren lässt.
Micronaut ist ein modernes Java Framework, das speziell mit der Anforderung entwickelt wurde, den Einsatz von Reflection zu minimieren.
Dazu wird unter anderem Code Generierung zur Build Zeit verwendet.
Micronaut kann mit Maven als auch Gradle als Buildsystem gut verwendet werden.
Mit IntelliJ IDEA gibt es jedoch einiges zu beachten, sonst kann es zu schwer diagnostizierbaren Fehlern kommen.
Typischerweise sind APIs zur Verarbeitung durch andere Systeme gedacht.
Wenn die Ausgaben jedoch für Menschen bestimmt sind, kann es sinnvoll sein, diese zu lokalisieren.
Das Spring Framework bringt dazu bereits Bausteine mit, ebenso Spring WebMVC für die Web bzw. API-Schicht.
Am Beispiel einer Spring Boot Anwendung wird der konkrete Einsatz illustriert.
Geschrieben von Leonard Wagner am 23. Oktober 2024
In einem vorherigen Artikel haben wir uns damit befasst, wie man Keycloak Rollen als Spring Security Authorities verfügbar macht, wenn Spring Boot als Resource Server agiert.
In diesem Folgebeitrag betrachten wir nun den Fall, in dem unsere Spring Boot Anwendung die Rolle eines OAuth 2.0 Client einnimmt und einen OAuth 2.0 Login mit Keycloak implementiert.
Auch hier wollen wir die Rollen aus Keycloak korrekt mappen.
Geschrieben von Leonard Wagner am 14. Oktober 2024
Spring Framework 6.2 bzw. Spring Boot 3.4 bringt eine interessante Neuerung für Entwickler, die ihre Unit- und Integrationstests mit AssertJ schreiben: MockMvc Tests können nun auch mit AssertJ formuliert werden (GitHub Issue).
Bisher musste für Controller-Tests mit MockMvc auf die Hamcrest-Syntax zurückgegriffen werden, was zu uneinheitlichen Test-Code führen konnte.
Mit dem Release von Spring Boot 3.4 im November 2024 kann die vertraute AssertJ assertThat() API auch in Verbindung mit MockMvc verwendet werden, was das Testen von Web-Controllern eleganter und konsistenter macht.
In diesem Artikel zeigen wir, welche Anpassungen am Code notwendig sind, um diese neue Möglichkeit nutzen zu können.