当前位置: 首页 > 知识库问答 >
问题:

无法在spring-context.xml中加载属性文件。属性文件路径在dev.properties中作为占位符给出

孟花蜂
2023-03-14

我在spring-context.xml中加载属性文件,并在${spring.profiles.active}.properties中给出外部属性文件的位置,该位置位于类路径中,并将该位置用作spring-context.xml中的placholder。我的spring-context.xml是:

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreResourceNotFound" value="true" />
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="searchSystemEnvironment" value="true" />
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="locations" ref="propertyConfigurerFiles" />
    </bean>
    <bean id="propertyConfigurerFiles" class="java.util.ArrayList">
    <constructor-arg>
    <list>
    <value>/WEB-INF/properties/common.properties</value>

    <!--In Developemnet Enviroenment it will be dev.properties-->
    <value>/WEB-INF/properties/${spring.profiles.active}.properties</value> 

    <!--External Property File Location as a Placeholder-->
    <value>${app.config.batch.location}</value>

    </list>
    </constructor-arg>
    </bean>

我的dev.properties是:

    app.config.batch.location=E:/project/properties/config.properties

共有1个答案

董建德
2023-03-14

您需要创建PropertyPlaceHolderConfigurer类的bean。不仅仅是一些ArrayList bean。您认为为什么需要这个ArrayList bean?

 类似资料:
  • 我有一个SpringBoot应用程序。对于Thymeleaf,对于此属性文件: 在控制器上: 在模板上: 但我在浏览器上看到:

  • 问题内容: 我有一个使用Logback的Spring Boot控制台应用程序。所有属性(针对应用程序和Logback)都被外部化为类路径中的标准application.properties文件。在应用程序本身中可以很好地拾取这些属性,但在logback.xml文件中不会拾取这些属性。在Spring Boot启动之前,似乎好像处理了logback.xml,因此未处理EL占位符。 以FileNameP

  • 我有一个使用Logback的Spring Boot控制台应用程序。所有属性(应用程序和日志)都外部化到类路径中的标准application.properties文件中。这些属性在应用程序本身中可以很好地提取,但在logback.xml文件中不能提取。看起来好像是在Spring Boot启动之前处理了logback.xml,因此没有处理EL占位符。 使用FileNamePattern作为示例,在ap

  • 我需要从spring boot war外部加载application.properties文件,该文件将部署在Tomcat中。 我试过各种解决方案,遗漏了一些东西 > 尝试在windows中设置环境变量,如下所示 尝试将上下文参数设置为tomcat,如下文所述,请回答https://stackoverflow.com/A/44697239/2751962 尝试在扩展SpringBootServle

  • 我无法加载位于jar (project.service.jar)中的db.properties,它被war文件(project-web.war)引用。输出war将jar放在we b-INF/lib/project . service . jar中。rest war也使用jar,它使用jar中的一些服务。当战争开始时,我无法加载位于服务的jar文件中的db.properties。prop文件具有要在

  • 问题内容: 我已经看过几次,并尝试了一些建议,但都没有成功(到目前为止)。我在以下路径上有一个maven项目和属性文件: 我正在尝试将其加载到Singleton类中以通过键访问属性 但是我在运行时遇到了NullPointerError的问题。我已经完成了所有可以想到的操作,但是无法找到/加载文件。 有任何想法吗? 堆栈跟踪: 问题答案: 您应该实例化您的对象。另外,您还应该使用以下路径加载资源文件