Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring系统属性解决得太早_Java_Spring_Maven_Spring Mvc_Dependency Injection - Fatal编程技术网

Java Spring系统属性解决得太早

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"&

我正在web应用程序中使用Spring 3.2.14.RELEASE中的PropertyPlaceHolderConfigure。我的PropertyContext.xml文件中有下面的段

    <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