Bislang habe ich Docker Images für meine Spring Boot Anwendungen immer per Dockerfile gebaut. Dafür wurde die mit dem spring-boot-maven-plugin erzeugte JAR Datei einfach in ein Docker Image kopiert. Dieses Vorgehen hat jedoch einige Nachteile, die nur mit viel Aufwand gelöst werden können. Stattdessen empfehle ich seit einiger Zeit die Verwendung von Google Jib, das eure Java Anwendungen effizient und sicher als Docker Image verpackt.
Vor kurzem habe ich alle Dienste auf meinem Server zu Docker migriert. Zur komfortablen Verwaltung der Docker Container kommt bei mir die schlanke OpenSource Anwendung Portainer zum Einsatz.
Die verteilte Versionsverwaltung Git ist aus der modernen Softwareentwicklung nicht mehr wegzudenken. Dienste wie GitHub machen es einem unglaublich leicht, eigene Repositories zu verwalten. Wer jedoch einen eigenen Git Server mit einer komfortablen Weboberfläche betreiben möchte, dem kann ich Gitea wärmstens empfehlen.
Der ModelAttributeMethodProcessor von Spring MVC erlaubt standardmäßig die Überprüfung von Methodenparametern in @Controller-Klassen per Bean Validation. Um diese Funktionalität auch in anderen Spring Beans (die z.B. mit @Service oder @Component annotiert sind) verwenden zu können, sind nur wenige Handgriffe nötig.
Ohne manuelle Konfiguration kann nur eine Datenbank mit Spring Boot genutzt werden. Soll eine Anwendung mehrere Datenbanken anbinden, ist hingegen etwas Handarbeit nötig. Dieser Artikel zeigt die dazu notwendige Konfiguration unter Verwendung von Spring Boot 2, Spring JDBC und zwei MySQL Datenbanken.
Mit Spring Boot können bequem Build und Git Informationen erzeugt und ausgelesen werden. Damit die Informationen erzeugt werden, muss die Konfiguration zunächst entsprechend angepasst werden.
Spring basierte Webanwendungen werden für gewöhnlich mit Spring Security abgesichert. Dieser Artikel zeigt, wie eine datenbankgestützte Authentifizierung mit diesem Framwork umgesetzt werden kann.
Viele moderne Anwendungen verfügen heutzutage über Plugin Schnittstellen. Solche Schnittstellen ermöglichen es, die jeweilige Anwendungen zu erweitern, ohne die Hauptanwendungen selbst anzupassen. Java bringt standardmäßig den ServiceLoader mit, um solche Plugin Schnittstellen umzusetzen.
Mit den MySQL Kommandozeilentools können Datenbanken bequem gesichert und wiederhergestellt werden. Dieser Artikel zeigt die dafür nötigen Grundbefehle. Zum Schluss folgt ein Bashscript, mit dem alle Datenbanken eines MySQL Servers automatisch gesichert werden können.
Server sollten immer auf dem aktuellen Stand gehalten werden, vor allem wenn sie über das Internet erreichbar sind. Für Linux Server, die APT als Paketverwaltung verwenden, existiert deshalb das hilfreiche Tool apticron. Es wird einmal täglich per cron gestartet und informiert per E-Mail darüber, ob Systemupdates zur Verfügung stehen.