Posts

Erfahrungsbericht Spring Boot 3 Update

Bild
Unser Java-System ist jetzt mit Spring Boot Version 3 im produktiven Einsatz! Hier teile ich meinen Erfahrungsbericht, da sich Systeme in der echten Welt häufig von Demos oder Tutorials unterscheiden. Highlights Spring Boot 3 Warum auf Spring Boot 3 und damit auf die Version 6 des Spring Frameworks updaten? Spring 6 ist auf die aktuelle Java LTS Version 17 aktualisiert. Damit modernisiert Spring sich in erster Linie selbst, wovon wir indirekt profitieren. Native Images mit GraalVM werden offiziell supported. Das ermöglicht unserer Spring Anwendung den blitzschnellen Start als Docker Container, siehe graalvm.html . Viele direkt oder indirekt verwendete 3rd Party Bibliotheken sind auf neue Versionen aktualisiert. Wir bekommen damit diverse Fixes für Sicherheitslücken. Planung des Spring Boot 3 Updates Der Spring Boot 3.0 Migration Guide enthält im Wesentlichen diese Schritte: Update auf Spring Boot 2.7 Update auf Java 17 Update auf Spring Boot 3 Dependencies anpassen Code anpassen Unser...

Vue.js Frontend mit Spring Boot Backend

Bild
Vue.js ist eine schnelle und flexible JavaScript-basierte Frontend-Entwicklungsplattform. Durch intuitive Syntax und umfangreiche Bibliotheken ist es eine der besten Optionen für moderne Frontend-Entwicklung. Hier kombinieren wir es mit einem Spring Boot Backend! Frontend und Backend im Zusammenspiel Was bauen wir genau? Wir programmieren ein modernes Frontend mit Vue.js.  Mit npm bauen wir das Frontend als produktionsbereites, kompaktes Artefakt. Danach Kopieren wir es in unsere Spring Boot Anwendung, so dass es vom integrierten Application Server (z. B. Tomcat oder Netty) ausgeliefert wird. Mit Spring Boot implementieren wir das Backend mit REST-API für das Vue.js Frontend. Das folgende Bild zeigt die Struktur unseres Spring Boot Servers mit integriertem Vue.js Frontend. Zuerst lädt der Benutzer die komplette Frontend Anwendung im Browser. Sofern diese mit Vue.js als Single Page Application gebaut wurde, finden anschließend nur noch REST-Requests statt.  Frontend und Backend...

OpenID Connect mit Spring Boot 3

Bild
Authentifizierung mit OpenID Connect geht einfach dank Spring Boot. Wir bauen den Login Deiner Web-Anwendung mit dem Autorisierungsserver Deiner Firma. Wie wir dazu OpenID Connect mit Spring Boot 3 konfigurieren, zeige ich in diesem Blog-Artikel. OpenID Connect - Authorization Code Prozess OpenID Connect ist ein Single Sign-On Login-Verfahren. Zur Umsetzung komplexer Anwendungsfälle verwenden größere Firmen meist verteilte Systeme. Damit der Benutzer z. B. beim Online-Shopping den Systemwechsel von Produktseiten zum Einkaufswagen und zur Kasse nicht wahrnimmt, loggt er sich mittels Single Sign-On nur einmal ein. Die beteiligten Systeme authentifizieren den eingeloggten Benutzer anhand seiner Single Sign-On Session. Detaillierte Informationen über OpenID Connect und Single Sign-On findet ihr hier . In diesem Artikel fokussiere ich mich auf das Anwendungs-System, welches zur Benutzer-Authentifizierung den firmeneigenen OpenID Identity Provider verwendet. Bevor wir uns die Implementierung...

Streams vs. Loops in Java

Bild
Java's Stream API ist eine mächtige Alternative zu Schleifen. Modernere, reaktive Programmierung setzt voll auf Streams. Hier stelle ich Streams und Loops gegenüber, indem ich die gleiche Aufgabe mittels Stream und Schleife löse.   Java Streams API Ein Stream ist ein Datenstrom. Mit der Java Stream API können Objekte in Datenströmen analysiert, bearbeitet, gefiltert und umgewandelt werden. Ich stelle mir Stream gerne als Fließband vor. Die Objekte werden von einer Quelle (z.B. List ) auf das Fließband gepackt und durchlaufen verschiedene Stationen, an denen sie bearbeitet werden. Zum Abschluss werden sie in ein Ergebnis gepackt (z.B. neue List ), welches dann im weiteren Programmcode benutzt werden kann. Fließband: Stream der analogen Welt Intermediate Operations Zum Bearbeiten der Objekte im Stream gibt es sogenannte "intermediate Operations", die im Stream Interface definiert sind: filter - entfernt Objekte aus dem Stream map - wandelt Objekte um peek - erlaubt Bearbeit...

ChatGPT Chatbot in Java Web-Anwendung integrieren

Bild
Wie integrierst Du eine künstliche Intelligenz als Chatbot in Deine Web-Anwendung? Am einfachsten indem Du die GPT-3 API benutzt. Hier zeige ich, wie es mit Java funktioniert. OpenAI Account und API Key OpenAI bietet die GPT-3 API an, die auch ChatGPT verwendet. Willst Du sie nutzen? Dann geht es vor dem eigentlichen Programmieren in Java so los: Eigenen Account auf  https://openai.com/ erstellen. Einloggen und eigenen API Key erstellen: https://beta.openai.com/account/api-keys Der API Key berechtigt Deine Anwendung die GPT-3 API zu nutzen. Bei YouTube findet ihr ein englisches und deutsches Video passend zu diesem Blog-Artikel. How-To use GPT-3 API video in English GPT-3 API mit Java HttpClient aufrufen Die GPT-3 API kann mit jeder Programmiersprache bzw. jedem HTTP Client verwendet werden. Ich zeige euch hier, wie es mit dem HttpClient von Java funktioniert. String postBody =       """      {          " prompt": "Code ...