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
Freigeben: 2023-05-22 10:07:07
nach vorne
1056 Leute haben es durchsucht

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
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

@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);
    }

}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage