Konfiguration mit YAML-Dateien

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du eine Spring Boot-Anwendung mit einer YAML-Datei konfigurierst, eine Klasse implementierst, um die Konfigurationsdaten zu verarbeiten, und einen Controller erstellst, um die konfigurierten Informationen auf einer Webseite anzuzeigen.

👀 Vorschau

Spring Boot web page result

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Anwendungs-Eigenschaften mit einer YAML-Datei konfigurierst
  • Wie du eine Student-Klasse implementierst, um die Konfigurationsdaten zu verarbeiten
  • Wie du einen StudentController erstellst, um die konfigurierten Daten auf einer Webseite anzuzeigen
  • Wie du die Startklasse modifizierst, um alle Klassen im Projekt-Paket zu scannen

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • YAML-Dateien für die Anwendungs-Konfiguration zu verwenden
  • Die @ConfigurationProperties-Annotation zu verwenden, um Konfigurationsdaten automatisch an eine Klasse zu binden
  • Die @Value-Annotation zu verwenden, um Konfigurationswerte in einen Controller einzufügen
  • Die @SpringBootApplication-Annotation zu verwenden, um die Komponente-Scanning zu konfigurieren
  • Eine einfache Webanwendung zu entwickeln, die die konfigurierten Daten anzeigt

Konfiguriere die YAML-Datei

In diesem Schritt lernst du, wie du die Anwendungs-Eigenschaften mit einer YAML-Datei konfigurierst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Navigiere zum Verzeichnis src/main/resources in deinem Projekt.
  2. Erstelle eine neue Datei mit dem Namen application.yml.
  3. Füge in der Datei application.yml die folgende Konfiguration hinzu:
## Self-defined properties
school: Stanford University

student:
  id: 2024000103
  name: Taylor Joy
  age: 18
  courseId: 100018, 321001, 458911

Diese YAML-Konfiguration definiert die Eigenschaft school und die Eigenschaften von student, einschließlich der Studenten-ID, des Namens, des Alters und der Kurs-IDs.

✨ Lösung prüfen und üben

Implementiere die Student-Klasse

In diesem Schritt wirst du die Student-Klasse implementieren, um die Konfigurationsdaten zu verarbeiten.

  1. Navigiere zum Paket org.labex.entity und erstelle eine neue Datei mit dem Namen Student.java.
  2. Füge in der Datei Student.java folgenden Code hinzu:
package org.labex.entity;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Component
@ConfigurationProperties(prefix = "student")
public class Student {
    private String id;
    private String name;
    private int age;
    private int[] courseId;

    @Override
    public String toString() {
        return "Student {id=" + id +
                ", name=" + name +
                ", age=" + age +
                ", course id=" + Arrays.toString(courseId) + "}";
    }

    // Getter und Setter
    //...
}

In dieser Klasse verwenden wir die Annotations @Component und @ConfigurationProperties, um die Eigenschaften aus der application.yml-Datei automatisch an die entsprechenden Felder in der Student-Klasse zu binden.

✨ Lösung prüfen und üben

Implementiere den StudentController

In diesem Schritt wirst du den StudentController implementieren, um die konfigurierten Daten anzuzeigen.

  1. Navigiere zum Paket org.labex.controller und erstelle eine neue Datei mit dem Namen StudentController.java.
  2. Füge in der Datei StudentController.java folgenden Code hinzu:
package org.labex.controller;

import org.labex.entity.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class StudentController {
    @Value("${school}")
    private String school;

    @Autowired
    private Student student;

    @GetMapping("/student")
    public String getStudent() {
        return "school=" + school + student.toString();
    }
}

In diesem Controller verwenden wir die @Value-Annotation, um die school-Eigenschaft einzufügen, und die @Autowired-Annotation, um das Student-Objekt einzufügen. Die getStudent()-Methode wird die konfigurierten Daten im Browser anzeigen, wenn über den Endpunkt /student zugegriffen wird.

✨ Lösung prüfen und üben

Ändere die Startklasse

In diesem Schritt wirst du die Startklasse ändern, um alle Klassen im Paket org.labex zu scannen.

  1. Navigiere zum Paket org.labex.springbootyaml und öffne die Datei DemoApplication.java.
  2. Aktualisiere die Klasse DemoApplication wie folgt:
package org.labex.springbootyaml;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(scanBasePackages="org.labex")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Indem wir scanBasePackages="org.labex" zur @SpringBootApplication-Annotation hinzufügen, gewährleisten wir, dass alle Klassen im Paket org.labex vom Spring-Kontext gescannt und verwaltet werden.

✨ Lösung prüfen und üben

Verpacke und starte die Anwendung

In diesem letzten Schritt wirst du die Anwendung in eine JAR-Datei verpacken und den Spring Boot-Dienst starten.

  1. Öffne ein Terminal und navigiere mit dem folgenden Befehl zum Stammverzeichnis deines Projekts:
cd ~/project/springbootyaml/
  1. Führe die folgenden Befehle aus, um die Anwendung zu verpacken und den Spring Boot-Dienst zu starten:
mvn clean package
mvn spring-boot:run
  1. Wenn der Dienst läuft, öffne einen Webbrowser und navigiere zu http://localhost:8080/student. Du solltest die konfigurierten Schul- und Studenteninformationen auf der Seite sehen.

Die Ausgabe sollte so aussehen:

Spring Boot service output

Herzlichen Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen, indem du die Anwendung mit einer YAML-Datei konfiguriert hast, die erforderlichen Klassen implementiert hast und den Spring Boot-Dienst ausgeführt hast.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.