2012-06-27 10 views

Antwort

12

Die integrierte Properties-Klasse von Java erfüllt nicht das, wonach Sie suchen.

Aber es gibt Third-Party-Bibliotheken da draußen, die tun. Commons Configuration ist eine, die ich mit einigem Erfolg verwendet habe. Die Klasse PropertiesConfiguration erfüllt genau das, wonach Sie suchen.

So können Sie eine Datei mit dem Namen my.properties die wie folgt aussieht:

key1=value1 
key2=Something and ${key1} 

Code, der diese Datei verwendet könnte wie folgt aussehen:

CompositeConfiguration config = new CompositeConfiguration(); 
config.addConfiguration(new SystemConfiguration()); 
config.addConfiguration(new PropertiesConfiguration("my.properties")); 

String myValue = config.getString("key2"); 

myValue"Something and value1" sein wird.

0

Wenn Sie den Wert eines Schlüssels in der Eigenschaftendatei definieren, wird er als Literalwert analysiert. Wenn Sie also key3= ${key1} definieren, hat key3 den Wert "$ {key1}".

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)

ich mit csd einverstanden sind, kann die einfache Konfigurationsdatei nicht Ihre Wahl sein. Ich ziehe mit Apache Ant (http://ant.apache.org/), wo man so etwas tun kann:

<property name="src.dir" value="src"/> 
<property name="conf.dir" value="conf" /> 

dann später, wenn Sie Taste ‚src.dir‘ verwenden möchten, ist es einfach so etwas nennen:

<dirset dir="${src.dir}"/> 

Eine andere gute Sache über die Verwendung von Apache Ant ist, dass Sie auch die .properties-Datei in Ant-Build-Datei laden können. Importieren Sie es einfach so:

<loadproperties srcFile="file.properties"/> 
0

.xmlAuch besser: Verwenden Sie die neuesten Maven. Sie können einige nette Sachen mit Maven tun. In diesem Fall können Sie eine .properties mit diesen Zeilen in ihm-Datei machen:

key1 = ${src1.dir} 
key2 = ${src1.dir}/${filename} 
key3 = ${project.basedir} 

in der pom des Maven.XML-Datei (platziert in der Wurzel Ihres Projekts) sollten Sie etwas tun:

<resources> 
    <resource> 
     <filtering>true</filtering> 
     <directory>just-path-to-the-properties-file-without-it</directory> 
     <includes> 
      <include>file-name-to-be-filtered</include> 
     </includes> 
    </resource> 
</resources> 

... 

<properties> 
    <src1.dir>/home/root</src1.dir> 
    <filename>some-file-name</filename> 
</properties> 

Auf diese Weise würden Sie in Kompilierzeit Schlüssel Werte geändert haben, was bedeutet, dass nach dem Kompilieren haben Sie diese Werte in Ihrem Eigenschaften Datei:

key1 = /home/root 
key2 = /home/root/some-file-name 
key3 = the-path-to-your-project 

mit dieser Linie kompilieren, wenn Sie in dem gleichen Verzeichnis wie pom.xml-Datei sind: mvn sauber -DskipTests installieren

Verwandte Themen