2016-05-15 9 views
0

Wir müssen das folgende Verhalten erreichen, die Eigenschaftendatei (sagen abc.properties) in meinem Frühjahr Projekt zu beheben:
1. Versuchen abc.properties neben meinem JAR-Datei
2. Wenn die Datei abc.properties finden Wird nicht neben der JAR-Datei gefunden, suchen Sie sie in einem Ordner namens configs.spring: Wie definiere ich den Speicherort der Eigenschaftendatei?

Wie können wir die oben mit Feder propertyplaceholderconfigurer

Antwort

0

Für XML-basierte Konfiguration

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>classpath:abc.properties</value> 
      <value>file:/some/folder/path/override.properites</value> 
     </list> 
    </property> 
</bean> 

Sie können auch context Namespace erreichen:

<context:property-placeholder locations="classpath:abc.properties,file:/some/folder/path/override.properites"/> 

Für Annotation-basierte Konfiguration können Sie

@PropertySource({ 
    "classpath:abc.properties", 
    "file:/some/folder/path/override.properites" //This will override values with same keys as in abc.properties 
}) 

Weitere Details folgende Anmerkung zu jedem Ihrer @Configuration Dateien hinzufügen: http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

0

Der Schlüssel ist, setzen ignoreResourceNotFound Eigenschaft zu true.

Beispiel unter Verwendung von PropertyPlaceholderConfigurer:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="ignoreResourceNotFound" value="true" /> 
    <property name="locations"> 
     <list> 
      <value>classpath:abc.properties</value> 
      <value>file:/path-to-file/abc.properites</value> 
     </list> 
    </property> 
</bean> 

Beispiel unter Verwendung von @PropertySource:

@Configuration 
@PropertySource(value = { "classpath:abc.properties", "file:/path-to-file/abc.properties" }, ignoreResourceNotFound = true) 
class MyConfig { 
    ... 
} 
Verwandte Themen