相关疑难解决方法(0)

加载特定于环境的属性以与PropertyPlaceholderConfigurer一起使用?

这似乎是一个非常普遍的问题,但我没有找到任何关于最佳方法的共识,所以我在这里提出问题.

我正在使用Spring Batch和Spring开发一个命令行Java应用程序.我正在使用属性文件和PropertyPlaceholderConfigurer,但我不太确定处理多个环境(dev,test等)的属性文件的最佳方法.我的谷歌搜索只是编写加载属性的程序化方式(即,在Java代码本身),这对我正在做的事情不起作用.

我考虑过的一种方法是简单地将每个环境的属性文件放在服务器上,并通过命令行参数将文件的目录添加到类路径中,但是我一直在使用该方法加载文件时遇到问题.

我正在考虑的另一种方法是在jar中包含所有属性文件,并使用系统属性或命令行参数在运行时填写属性文件的名称,如下所示:

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:job.properties.${env}</value>
        </list>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

我倾向于后一种解决方案,但我也想看看是否有一种更好的方法,我忽略了.

我还要提一下,我必须在运行时而不是在构建中进行替换.我被限制使用的过程需要一个单独的构建,这个构建将通过环境升级到生产,所以我无法使用替换ala Maven或Ant.

java spring properties

32
推荐指数
4
解决办法
5万
查看次数

标签 统计

java ×1

properties ×1

spring ×1