Spring 出现Could not resolve placeholder问题的解决方法

项目开发中,使用@value注解获取不到配置文件里面的属性字段。

检查配置文件,在spring的配置文件中有配置读取,如下:

<!-- 使用spring自带的占位符替换功能 -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <!-- 允许JVM参数覆盖 -->
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
        <!-- 忽略没有找到的资源文件 -->
        <property name="ignoreResourceNotFound" value="true" />
        <!-- 配置资源文件 -->
        <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
                <value>classpath:application.properties</value>
            </list>
        </property>
    </bean> 

这是没有问题的。启动的时候,也正常,但就是死活获取不到属性值。

经过漫长的尝试,和查找资料,综合分析:原来是spring,和springmvc父子容器的问题:

springmvc并不能获取到spring读取到的配置文件。

解决方法:在springmvc 配置文件中配置一下扫描,如下:

    <context:property-placeholder location="classpath:application.properties"/>

问题解决。

猜你喜欢

转载自www.cnblogs.com/sloveling/p/spring_springmvc.html
今日推荐