2016-08-11 5 views
2

Мне нужно прочитать файл свойств из WildFly, который находится за пределами войны в дикой природе, используя весну, я пробовал его с помощью PropertyPlaceholderConfigurer весной, и он работает, но есть одна проблема.загрузить файл свойства с внешнего пути, используя весну

applicationContext.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
     <value>file:/C:\wildfly-9.0.2.Final\wildfly-9.0.2.Final\standalone\deployments\/propertyLoader.properties</value> 
    </property> 
</bean> 

<bean id="getPropertyBean" 
    class="com.csc.loadProperty.GetProperty"> 
    <property name="prefixProp" value="${prefix}" /> 
    <property name="suffixProp" value="${suffix}" /> 
    <property name="newProp" value="${new}" /> 
</bean> 

здесь я даю абсолютный путь для propertyLoader.properties, но я должен дать относительный путь от сервера, поскольку путь может быть различным для разных машин. Может кто-нибудь мне помочь?

ответ

1

При использовании пружины 4, затем укажите путь к файлу свойств с помощью $ {}

@Configuration 
@PropertySource("file:${app.home}/app.properties") 
public class AppConfig 
@Autowired 
Environment env; 
} 

Затем установите, что app.home в качестве системной переменной при запуске. Если вы запускаете приложение весны внутри некоторого контейнера, установите это свойство в параметрах запуска java или аргументах vm.

java -jar -Dapp.home="/home/dev/config" example.jar 
0
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
     <value>file:# C:/wildfly-9.0.2.Final/wildfly-9.0.2.Final/standalone/deployments/propertyLoader.properties</value> 
    </property> 
</bean> 
Смежные вопросы