Am 19.10.2017 war Michael Simons bei der Java-User-Group Darmstadt zu Besuch und hat einen Vortrag zum Thema Spring-Boot-Starter gehalten.
Nach einem sehr kurzen Werbeblock zu sich selbst und seinen Spring-Boot-Buch, das im Januar veröffentlicht wird, ging es mit einer Erinnerung daran los, wie man früher in unendlich langen XML-Dateien Spring konfigurieren musste, bevor das Prinzip „Convention over Configuration“ verwendet wurde.
Dann hat Michael beschrieben, wie man es heute macht und auch kurz eine minimale Java- und Kotlin-Spring-Boot-Applikation gegenübergestellt.
Bei beiden Applikationen hat man gesehen, dass es nur wenige Zeilen Code bedarf, um eine Spring-Boot-Applikation zu erstellen.
Das ruft natürlich sofort die Kritiker auf den Plan, die sich beschweren, dass da zu viel Magie im Spiel ist.
Als Gegenargumente hat Michael dann die Ideen und Ziele von Spring Boot aufgeführt und ist anschliessend genauer auf die Vorteile von Spring Boot eingegangen.
Beispielsweise: Verwaltung von Abhängigkeiten, automatische Konfiguration, Spring-Boot-Starter und die externe Konfiguration von Spring-Boot-Applikationen.
Nach einer ersten Übersicht ist Michael in einer Demo genauer auf die Starter eingegangen und hat verschiedene Annotation erklärt, die man in Startern verwenden kann, um deren Verhalten abhängig von der Umgebung zu beeinflussen.
Nebenbei gaben noch verschiedene Tipps, wie man mit —debug und den Actuators eine Menge Informationen über eine Spring-Boot-Applikation zur Laufzeit erhalten kann.
Anschliessend ging es mit der externen Konfiguration weiter. Dabei ist Michael auf die verschiedenen Möglichkeiten eingegangen, wie sich Spring-Boot-Applikationen konfigurieren lassen und welche Konfigurationsquellen es gibt und wie man auf sie zugreift.
Das hat Michael dann wieder im Rahmen einer Live-Demo gezeigt und im Anschluss ein Fazit gezogen und zum Abschluss auch davor gewarnt, dass man nicht gegen Spring kämpfen sollte. D.h. keine Hacks verwenden, sondern in die gute Dokumentation schauen und die Möglichkeiten von Spring Boot einfach so benutzen, wie es vorgesehen ist.
Nach dem Vortrag gab es noch interessante Fragen, wofür Spring-Boot-Starter gut sind. D.h. beispielsweise für Frameworks und Querschnittsthemen, wie Security oder DB-Zugriffsbibliotheken.
Wobei dabei auch viele Meinungen existieren, ob man so Themen bündeln sollte, d.h. Bibliotheken erstellen sollte, die von mehreren Personen oder Teams benutzt werden.
Außerdem wurde noch kurz über Updates von Spring-Boot-Applikationen gesprochen, d.h. wie viel Zeit man für ein Versionsupdate bei Spring Boot einplanen sollte.
Mir hat der Vortrag sehr gut gefallen, weil er eine Funktionalität beschrieben hat, die zwar jeder Spring-Boot-Benutzer verwendet, aber wohl nur die wenigsten jemals versucht haben zu verstehen. Die meisten Entwickler nehmen die Starter einfach als gegeben hin. Nach dem Vortrag hat man einen guten Eindruck was sich hinter den Startern verbirgt und wofür man sie einsetzen kann.
Vielen Dank an Michael für den interessanten Vortrag!
Diesmal gibt es übrigens auch ein Video zu dem Vortrag, das Niko aufgezeichnet hat.