java – Spring加载基于tomcat servlet上下文定义的application.properties

我需要为我们的春季项目进行开发和生产设置.我知道您可以使用弹簧配置文件,但这不是我们可以做的事情.

我想要做的是在开发环境中放置一个test-application.properties文件,并在生产中放置一个prod-application.properties文件.在tomcat上下文定义中,我们发送了以下内容

aram>
        aram-name>properties_locationaram-name>
        aram-value>file:C:\Users\Bill\test-application.propertiesaram-value>
    aram>

我们可以为生产服务器更改值.在spring配置中我们有这样的东西:

figurer">
    noreUnresolvablePlaceholders" value="false" />

但我们不断收到如下错误

org.springframework.beans.factory.BeanInitializationException: Could
not load properties; nested exception is
java.io.FileNotFoundException: Could not open ServletContext resource
[/${properties_location}]

关于如何解决的任何想法?

最佳答案
PropertyPlaceholder的一个功能是您可以定义多个资源位置.
例如,您可以定义your-production-config.properties以及文件:C:/ Users / ${user.name} /test-application.properties

    fig.PropertyPlaceholderConfigurer">
    sspath:your-production-config.propertiesnoreUnresolvablePlaceholders" value="true"/>
    noreResourceNotFound" value="true"/>
    stemPropertiesModeName" value="SYstem_PROPERTIES_MODE_OVERRIDE"/>        

对于生产,你需要将prod配置放在某个地方的classpath中(确切地说,确切地说,这并不重要,只是类路径) – 对于本地环境,你可以使用像这个文件的对应:C:/ Users / ${user.name} /test-application.properties

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...