2016-04-03 3 views
-1

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 
    } 
+0

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

+0

Ü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

+0

@Heri - Ich habe mehrere Yaml-Dateien, das ist, was Rückkehr-Liste, möchte ich diese Liste in meiner gesamten Anwendung haben. –

Antwort

Verwandte Themen