Java Spring系统属性解决得太早
我正在web应用程序中使用Spring 3.2.14.RELEASE中的PropertyPlaceHolderConfigure。我的PropertyContext.xml文件中有下面的段Java Spring系统属性解决得太早,java,spring,maven,spring-mvc,dependency-injection,Java,Spring,Maven,Spring Mvc,Dependency Injection,我正在web应用程序中使用Spring 3.2.14.RELEASE中的PropertyPlaceHolderConfigure。我的PropertyContext.xml文件中有下面的段 <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="properties"&
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
<property name="locations">
<list>
<value>classpath:globalDefinitions.properties</value>
<value>file:${user.home}/myapplication.properties</value>
</list>
</property>
<property name="ignoreResourceNotFound" value="true"/>
</bean>
我打开生成的war文件,看到第二行的locations值已解析为笔记本电脑的${user.home}。
我期望它在创建Spring上下文时发生
我们正在构建一个构建服务器上的war文件,然后将其传输到Test/Prod机器,因此当我们有不同的${user.home}值时,它会给我们带来麻烦
我做错了什么?这是预期行为还是我有其他一些maven插件干扰(我需要检查)?问题是maven资源插件处理src/main/resources下的文件,并在构建阶段评估${user.home}值。(谢谢@BackSlash)
因此,我在maven resource plugin中禁用了对PropertyContext的过滤,它开始按预期运行。可能是maven resources plugin在启动
mvn
命令时正在预处理文件。尝试排除您的特定文件/目录。您的意思是在mvn安装后,***.properties文件中已填入您的笔记本电脑家庭地址吗?或者直接让maven在上下文XML中设置${user.home}?无论如何,我认为你应该试试它几乎肯定是Maven资源过滤。@BackSlash确实非常感谢你。如果你愿意,你可以写下来作为答案。
mvn clean install -DskipTests=true