2017-12-18 3 views
1

Ich habe die Eigenschaftendatei mit den folgenden Werten. Ich möchte alle Eigenschaften mit dem gleichen Präfix lesen, andere mit Federmvc ausschließen.Wie lesen Sie mehrere Eigenschaften mit demselben Präfix in Java-Frühling?

test.cat = Katze
test.dog = Hund
test.cow = Kuh
Vögel = Adler

Environment.getProperty("test.cat"); 

Dieses nur zurückkehren wird 'Katze'.

In der obigen Eigenschaftendatei, möchte ich (Präfix) beginnen alle Eigenschaften erhalten mit Test ohne Vögel. Im Frühjahr Boot können wir dies mit @ConfigurationProperties(prefix="test") erreichen, aber wie man das selbe im Frühling mvc erreicht.

Antwort

2

Sehen Sie dieses Jira ticket vom Frühlingsprojekt für Erklärung, warum Sie nicht eine Methode sehen, die tut, was Sie wünschen. Der Ausschnitt an der obigen Verbindung kann wie folgt mit einer if-Anweisung in der innersten Schleife geändert werden, die die Filterung durchführt. Ich nehme an, Sie haben eine Environment env Variable und suchen nach String prefix:

Map<String, String> properties = new HashMap<>(); 
if (env instanceof ConfigurableEnvironment) { 
    for (PropertySource<?> propertySource : ((ConfigurableEnvironment) env).getPropertySources()) { 
     if (propertySource instanceof EnumerablePropertySource) { 
      for (String key : ((EnumerablePropertySource) propertySource).getPropertyNames()) { 
       if (key.startsWith(prefix)) { 
        properties.put(key, propertySource.getProperty(key)); 
       } 
      } 
     } 
    } 
} 
+0

Das ist für mich Danke gearbeitet .. !!! –

Verwandte Themen