2016-04-16 13 views
0

Was ist der richtige Weg ist das Properties() Objekt zuzugreifen, nachdem es mit einer .properties Datei zu laden?Java: Wege für den Zugriff auf Eigenschaften Objekt nach Last

Eine Möglichkeit, die ich in der Vergangenheit verwendet habe, besteht darin, jedes Properties-Objekt in einer statischen Variablen in einer Dienstprogrammklasse zu speichern und dort darauf zuzugreifen. Aber ich habe gedacht, dass es vielleicht besser wäre, eine Wrapper-Klasse mit einigen Utility-Funktionen zu erstellen? Nicht sicher, ob das hilfreich wäre. Die meisten Beispiele, die ich gefunden habe, beschäftigen sich nur damit, wie man eine Eigenschaftendatei lädt, aber nicht, was danach passieren soll.

Gibt es einen allgemein anerkannten Weg, es zu tun, und was sind die Vor- und Nachteile?

+0

auf die Eigenschaft zugreifen Wenn Sie die Eigenschaften richtig laden, können Sie sie über 'System.getProperty()' Methode zugreifen. –

+0

Ich wusste das eigentlich nicht ... Was passiert, wenn ich zwei verschiedene Eigenschaften-Dateien lade, die zufällig identische Schlüssel haben? – Konstantine

+0

werfen Sie einen Blick auf meine Antwort –

Antwort

1

Genau wie Rob Conklin sagte, ist es wahrscheinlich gut, ein Abstraktionsniveau zu halten, um zu (in der Zukunft) Lage sein, die Eigenschaften-Datei-basierte Speicherung wechseln aus.

Allerdings können Sie Ihre Eigenschaften verschmelzen mit System.getProperty() gesetzt, egal wo in Ihrem Programm einen einfachen Zugang zu bekommen

FileInputStream propFile = new FileInputStream("myProperties.properties"); 
Properties p = new Properties(System.getProperties()); 
p.load(propFile); 
// set the system properties 
System.setProperties(p); 

Unabhängig davon, welche Eigenschaften Sie neueste setzen wird, die anderen außer Kraft setzen (wenn die Namen kollidiert)

Sie kann dann später einfach mit System.getProperty("propName");

0

selbst einen großen Gefallen tun, und ein DAO erstellen um Ihre Eigenschaften Access-Datei. In den meisten Systemen, an denen ich gearbeitet habe, haben wir uns immer gewünscht, dass wir diese Abstraktion haben. Dadurch können Eigenschaftendateien zu einem späteren Zeitpunkt datenbankgesteuert werden.

Sie können es im Inneren des DAO als statische Variable zwischenspeichern, aber das von dem Client verborgen wird.

Verwandte Themen