Ich habe Datei, die Konfiguration enthält, zum Beispiel Navigationselemente, Namen für Plugins, etc ,. Zur Zeit lese ich diese Datei in der Komponentenklasse und muss sie in jede Klasse einfügen, gibt es eine Möglichkeit, diese .yml Datei beim Start der Anwendung zu lesen und zu laden, sie applikationsweit verfügbar zu machen und HTML-Dateien zu erstellen, ohne in jede Klasse zu injizieren in jeder Methode anrufen?Wie man eine Datei liest und ein Objekt beim Start der Anwendung lädt Spring Boot
so lese ich die Datei.
List<Manifest> readManifestYamlFiles(String path) {
// adding the files content to the list
List<Manifest> manifestFiles = []
// variable to hold the fileContents
String fileContents = ""
// recursively looping over the plugins directory to read the manifest.yml file
println path
new File(path).eachDirRecurse() { dir ->
// looking for only .yml file
dir.eachFileMatch(~/.*.yml/) { file ->
// set the fileContent to the variable
fileContents = new File(file.getPath()).text
// map manifest.yml file content
Manifest manifest = yamlUtility.mapYamlToObject(fileContents, Manifest.class, new Manifest())
// add content of each file to the list
manifestFiles.add(manifest);
}
}
return manifestFiles
}
ziemlich unklar, was dein Problem ist. Der Text spricht von einer XML-Datei, der Code analysiert mehrere XML-Dateien in eine Manifest-Liste. "Und muss es in jeder Klasse spritzen": Was muss gespritzt werden? Die Liste? – Heri
Überlegen Sie, die YML-Dateien mithilfe des Federmechanismusses in die Federumgebung zu laden. Dann injiziere nur die Umgebung in die Klassen, die dann jede gewünschte Eigenschaft lesen können. – Heri
@Heri - Ich habe mehrere Yaml-Dateien, das ist, was Rückkehr-Liste, möchte ich diese Liste in meiner gesamten Anwendung haben. –