Wie verwende ich Resourcebundle, um hartcodierte Konfigurationswege in Java -Apps zu vermeiden?

StackOverflow https://stackoverflow.com/questions/154728

  •  03-07-2019
  •  | 
  •  

Frage

Ich möchte Abhängigkeiten von hartcodierten Pfaden für Konfigurationsdaten in meinen Java -Apps beseitigen. Ich verstehe, dass die Verwendung von Resourcebundle mir hilft, den Klassenloader zu verwenden, um Ressourcen zu finden.

Kann mir jemand sagen, wie ich einen festcodierten Pfad in eine Ressource (z. B. eine .Properties -Konfigurationsdatendatei) ersetzen würde, die von einer Klasse gefordert wird), mit einer angemessenen Verwendung von Resourcebundle? Einfaches klares Beispiel, wenn möglich, danke an alle.

War es hilfreich?

Lösung

Vor Java 6 erlaubte Ressourcebundle in der Regel:

Java 6 kommt mit dem Resourcebundle.Control Klasse, der die Tür zu anderen Quellen von Resourcebundles öffnet, zum Beispiel:

  • XML -Dateien (siehe Beispiel 2 in Javadoc)
  • Datenbankreihen

Hoffe das hilft.

Andere Tipps

Sie werden untersuchen wollen Ressource.getBundle (String). Sie übergeben es den voll qualifizierten Namen einer Ressource auf dem Klassenpfad zum Laden als Eigenschaftendatei.

Sie benötigen keine RessourcenBundle. Ein einfaches Eigenschaftenobjekt kann den Job erledigen. Verwenden Sie einfach den Classloader, um einen InputStream für Ihre Eigenschaftendatei zu erhalten, und laden Sie sie zum Laden von DE -Werten. Wenn Sie komplexere Benutzerkonfigurationen verarbeiten müssen, verwenden Sie die Vorlieben API.

Mit freundlichen Grüße

Der Trick hinter Ressource.getBundle (..) ist die Verwendung des Klassenloaders. Sie können alles laden, was in Ihrem Klassenpfad ist, indem Sie über diese über dies zugreifen. Ressource.getBundle (..) ist ein praktischer Helfer, der es im Thema Ressourcen-/Lokatisierung verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top