Heim >Java >javaLernprogramm >So geben Sie die Yaml-Konfigurationsdatei für die SpringBoot-Analyse an

So geben Sie die Yaml-Konfigurationsdatei für die SpringBoot-Analyse an

WBOY
WBOYnach vorne
2023-05-22 10:07:071059Durchsuche

1. Benutzerdefinierte Konfigurationsdatei

Erstellen Sie die Datei my.yaml unter „-“, um den Array-Typ anzugeben. Achten Sie auf die Leerzeichen.

my:
  contents:
    - id: 12121
      name: nadasd
    - id: 3333
      name: vfffff

2. Konfigurationsobjektklasse

Erstellen Sie ein Konfigurationsklassenobjekt und fügen Sie der Klasse die Annotationen @Component, @PropertySource und @ConfigurationProperties hinzu.

@Component dient zur Übergabe der Klasse an die Federverwaltung, @PropertySource wird zum Angeben der Konfigurationsdatei und zum Parsen des Yaml-Formats verwendet und @ConfigurationProperties dient zum automatischen Einfügen der analysierten Konfigurationsdateieigenschaften in die Eigenschaften der Klasse.

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

import java.util.ArrayList;
import java.util.List;

@Component
@PropertySource(value = "classpath:my.yaml", factory = YamlPropertiesSourceFactory.class)
@ConfigurationProperties(prefix = "my")
public class MyProperties {

    private List<content> contents = new ArrayList<>();

    public List<content> getContents() {
        return contents;
    }

    public void setContents(List<content> contents) {
        this.contents = contents;
    }


}

class content {
    private String id;

    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

@PropertySource-Annotation wird von Spring zum Laden von Konfigurationsdateien verwendet. Die @PropertySource-Attribute lauten wie folgt:

  • Name: standardmäßig leer, automatisch von Spring generiert, wenn nicht angegeben

  • Wert: Konfigurationsdatei

  • ignoreResourceNotFound: nicht gefunden Ob die Konfigurationsdatei ignoriert werden soll, der Standardwert ist false, hinzugefügt in Version 4.0

  • encoding: Kodierungsformat der Konfigurationsdatei, der Standardwert UTF-8 wurde in Version 4.3 hinzugefügt

  • factory: Konfiguration Datei-Parsing-Factory, Standard: PropertySourceFactory.class wurde in Version 4.3 hinzugefügt. Wenn es sich um eine frühere Version handelt, müssen Sie die Konfigurationsdatei-Parsing-Beans manuell einfügen.

Spring Boot unterstützt @PropertySource standardmäßig nicht zum Lesen von Yaml-Dateien. und Sie müssen die PropertySourceFactory für die Analyse anpassen.

3. YamlPropertiesSourceFactory

Erstellen Sie die YamlPropertiesSourceFactory-Klasse, um Dateien im Yaml-Format zu analysieren.

import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertySourceFactory;

import java.io.IOException;
import java.util.List;
import java.util.Optional;

public class YamlPropertiesSourceFactory implements PropertySourceFactory {

    @Override
    public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
        String resourceName = Optional.ofNullable(name).orElse(resource.getResource().getFilename());
        List<PropertySource<?>> yamlSources = new YamlPropertySourceLoader().load(resourceName, resource.getResource());
        return yamlSources.get(0);
    }

}

Das obige ist der detaillierte Inhalt vonSo geben Sie die Yaml-Konfigurationsdatei für die SpringBoot-Analyse an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen