Spring Boot
Die Erweiterung des leichtgewichtigen Spring Frameworks.
Anfang der 2000er war Java Enterprise der Standard für Backend-Systeme. In seinem Buch "Expert One-on-One J2EE Design and Development" kritisierte Rod Johnson [Johnson02] die Schwergewichtigkeit solcher Systeme. Er stellte Muster vor, um mehr Flexibilität zu erreichen. Mit dem Spring Framework – das diese Muster umsetzt - lieferte er eine leichtgewichtige Alternative zum damaligen Standard Java Enterprise (J2EE).
Für eine Vielzahl externen Abhängigkeiten, z.B. Datenbank oder Remote-Calls an Fremdsysteme, schafft das Spring Framework eine einheitliche Zugriffs-Schicht und auch einen homogenen Weg, um sie zu konfigurieren.
Ein weiterer großer Vorteil liegt aus unserer Sicht in der Testbarkeit der Anwendung:
- Die Dependency Injection erleichtert Testing (Test-Doubles oder Mocking sind hier gängige Test-Patterns)
- Das Framework bietet Testing-Support out of the box mit an, so dass Teile des Spring-Containers gezielt im Test gestartet werden können
Spring Boot erweitert das Spring Framework um einen "Konvention vor Konfiguration" Ansatz, so dass Spring Boot Anwendungen "einfach gestartet" werden können. Möglich ist das, weil ein Webserver mit ausgeliefert wird und viele Abhängigkeiten, z. B. Datenbanken, bereits mit sinnvollen Standards vorkonfiguriert sind.
Es ist einfach, mit Spring Boot eigenständige Anwendungen zu schaffen. Daher bietet sich das Framework unter anderem sehr gut für den Einsatz in der Cloud an. Vorgefertigte Metrik-Schnittstellen erlauben hier einfaches Monitoring für den Betrieb.
Bei andrena und bei vielen unserer Kunden sind das Spring Framework und Spring Boot seit vielen Jahren im Einsatz.
[Johnson02]: Johnson, R.: Expert One-on-One J2EE Design and Development, John Wiley & Sons, 1. Edition 2002, ISBN 0764543857 9780764543852
David Burkhart, Softwareentwickler
„Ich entwickle seit Jahren Anwendungen mit Spring und Spring Boot für unsere Kunden. Besonders gut gefällt mir daran, dass Spring Boot, wie auch Spring, eine gute innere Codequalität und konsistente Struktur hat und vor allem auch einiges für die Testbarkeit der Komponenten anbietet.“