6 Konvention über Konfiguration

6.1 Einführung

Das Prinzip der Konvention vor Konfiguration (englisch: Convention over Configuration) ist ein Softwaredesign-Paradigma, das darauf abzielt, die Anzahl der Entscheidungen, die ein Entwickler treffen muss, zu reduzieren. Es ermöglicht, häufige Aufgaben mit minimaler Konfiguration auszuführen, indem sinnvolle Standardwerte und Konventionen verwendet werden.

6.2 Motivation und Hintergrund

In traditionellen Frameworks müssen Entwickler oft umfangreiche Konfigurationsdateien erstellen, um ihre Anwendungen anzupassen. Dies kann den Entwicklungsprozess verlangsamen und zu Fehlern führen. Durch die Einführung von Konventionen können Frameworks wie Spring Boot die Notwendigkeit für detaillierte Konfigurationen reduzieren, was zu einer schnelleren und effizienteren Entwicklung führt.

6.3 Umsetzung in Spring Boot

Spring Boot implementiert Konvention vor Konfiguration auf verschiedene Weise:

  1. Sinnvolle Standardwerte

    Viele Einstellungen haben voreingestellte Standardwerte, die für die meisten Anwendungen geeignet sind. Dies reduziert den Bedarf an expliziter Konfiguration.

  2. Automatische Konfiguration

    Spring Boot erkennt automatisch die im Klassenpfad vorhandenen Bibliotheken und konfiguriert die Anwendung entsprechend. Beispielsweise wird bei Vorhandensein von spring-webmvc automatisch eine Webanwendung konfiguriert.

  3. Starter-Abhängigkeiten

    Durch die Verwendung von Starter-Paketen wie spring-boot-starter-web können Entwickler schnell die benötigten Abhängigkeiten hinzufügen, ohne jede einzelne manuell zu definieren.

6.3.1 Beispiel: Erstellung einer einfachen Webanwendung

Ohne Spring Boot müsste man umfangreiche XML-Dateien oder Java-Konfigurationen erstellen. Mit Spring Boot kann eine einfache REST-API mit minimalem Aufwand entwickelt werden.

6.4 Codebeispiel: Einfacher REST-Controller

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class BegrüßungsController {

    @GetMapping("/gruss")
    public String gruessen() {
        return "Hallo, Welt!";
    }
}

6.4.0.1 Erklärung

6.5 Keine zusätzliche Konfiguration erforderlich

Dank der Konventionen von Spring Boot ist keine weitere Konfiguration nötig, um diesen Controller zum Laufen zu bringen. Beim Starten der Anwendung wird ein eingebetteter Tomcat-Server auf Port 8080 gestartet, und der Endpunkt /gruss ist sofort erreichbar.

6.6 Anpassung bei Bedarf

Obwohl Spring Boot sinnvolle Standardwerte bietet, können Einstellungen bei Bedarf leicht angepasst werden.

6.6.1 Beispiel: Ändern des Standardports

Um den Standardport von 8080 auf 9090 zu ändern, fügt man folgende Zeile in die application.properties ein:

server.port=9090

6.7 Automatische Konfiguration im Detail

Die automatische Konfiguration ist ein Kernfeature von Spring Boot. Sie basiert auf der Präsenz bestimmter Klassen und Eigenschaften im Klassenpfad.

6.8 Vorteile von Konvention vor Konfiguration

6.9 Herausforderungen

6.10 Werkzeuge zur Unterstützung

6.11 Beispiel: Aktivieren des Debug-Modus

Beim Starten der Anwendung kann das Debug-Flag gesetzt werden:

java -jar myapp.jar --debug

6.12 Best Practices

6.13 tl;dr

Das Prinzip Konvention vor Konfiguration in Spring Boot ermöglicht es Entwicklern, Anwendungen mit minimalem Aufwand zu erstellen. Durch sinnvolle Standardwerte und automatische Konfigurationen reduziert es die Komplexität und beschleunigt den Entwicklungsprozess, während dennoch genügend Flexibilität für spezifische Anpassungen bleibt.