Integrationstests mit Spring Data MongoDB und Testcontainers

Bis vor kurzem haben wir auf Arbeit eine Embedded MongoDB zum Testen unserer Spring Boot Anwendungen verwendet. Mittlerweile benötigen wir jedoch ein paar Features, die seit MongoDB 4 hinzugekommen sind, und die Embedded MongoDB unterstützt bis jetzt nur MongoDB 3. Daran wird sich vermutlich auch in Zukunft nichts ändern (Is this project dead? #314), sodass ich mich auf die Suche nach einer Alternative gemacht habe.

Caching für WebJars in Spring Boot konfigurieren

Für einfache Spring Boot basierte Webanwendungen greife ich häufig auf WebJars zurück. WebJars bieten die Möglichkeit, diverse JavaScript und CSS Bibliotheken wie z.B. jQuery oder Bootstrap als Abhängigkeit in Form einer JAR-Datei einzubinden. Spring Boot unterstützt WebJars von Haus aus, allerdings sollte das Caching für die WebJar Ressourcen konfiguriert werden, um möglichst kurze Ladezeiten für den Client zu erreichen.

Docker Images mit Google Jib bauen

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.

Docker Container mit Portainer verwalten

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.

20. September 2018 Docker Portainer

Eigenen Git Server mit Gitea betreiben

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.

20. September 2018 Git Gitea

Bean Validation mit Spring nutzen

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.

Mehrere Datenbanken mit Spring Boot und Spring JDBC anbinden

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.

Build und Git Informationen mit Spring Boot erzeugen und auslesen

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.

Plugin Schnittstelle mit dem Java ServiceLoader umsetzen

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.

25. August 2017 Java

MySQL Datenbanken sichern und wiederherstellen

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.