我的應用程序需要知道可以存儲其數據的目錄的路徑。我嘗試設置一個Java系統屬性,並將該變量用作Spring XML中的佔位符。使用Maven在Spring XML中無法解析系統屬性
在Eclipse中,我將該屬性添加到我的運行配置的環境中,它工作得很好。 Spring將$ {dataDir}解析爲正確的路徑。
但是,當我使用Maven2測試應用程序(mvn test -DdataDir = c:/ data)時,Spring抱怨它無法解析佔位符。
我的春天XML看起來是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- Allows me to use system properties in this file -->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
<bean id="xmlConfiguration" class="org.apache.commons.configuration.XMLConfiguration">
<constructor-arg index="0">
<value>${dataDir}/conf/config.xml</value>
</constructor-arg>
</bean>
</beans>
爲什麼不說,系統屬性傳遞給春天嗎?我究竟做錯了什麼?感謝您的任何建議!
編輯:當然,你是對的:$ {baseDir}應該是$ {dataDir}。但這只是這個問題的一個錯誤,而不是真正的代碼。
我試圖MAVEN_OPTS之前,但要麼...
應該是baseDir,而不是數據目錄 – toolkit 2009-10-28 15:23:26
工具包,是的,我認爲是。 – 2009-10-28 15:35:59