加载环境特定的属性,以供PropertyPlaceholderConfigurer使用。

7 浏览
0 Comments

加载环境特定的属性,以供PropertyPlaceholderConfigurer使用。

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

我正在使用Spring Batch和Spring开发一个命令行Java应用程序。我正在使用一个属性文件和PropertyPlaceholderConfigurer,但我对处理多个环境(开发,测试等)的属性文件的最佳方法有些不确定。我只找到了一些编程加载属性文件的方法(即在Java代码中),这对我正在做的工作是无效的。

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

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


    
        
            classpath:job.properties.${env}
        
    

我倾向于后者的解决方案,但我也在寻找是否有其他更好的方法我忽略了。

我还应该提到,我必须在运行时进行替换,而不是在构建过程中。我所使用的过程要求进行一次构建,然后将其在各个环境中推进到生产环境,因此我无法使用Maven或Ant进行替换。

0