내 애플리케이션은 데이터를 저장할 수있는 디렉토리의 경로를 알아야한다. 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} 여야합니다. 하지만 그것은 실제 코드가 아니라이 질문의 오타였습니다.
은 baseDir이 아니면 dataDir이 아니야 – toolkit
툴킷, 네, 그렇게 생각합니다. –