Java 如何为不同的环境读取不同的属性文件?
我在maven中创建了一个web应用程序。我在本地和devunix机器上使用tomcat服务器。我需要使用两个不同的.properties文件,如local.properties和dev.properties(可能在不同的文件夹中)。我的疑问是“我们如何配置本地的tomcat和unix的tomcat box,以便在部署时读取不同的属性文件?”有什么不同的方法。最简单的方法是向JVM传递一个系统参数来标识环境,然后在jar中打包dev.properties和local.propertiesJava 如何为不同的环境读取不同的属性文件?,java,spring,tomcat,Java,Spring,Tomcat,我在maven中创建了一个web应用程序。我在本地和devunix机器上使用tomcat服务器。我需要使用两个不同的.properties文件,如local.properties和dev.properties(可能在不同的文件夹中)。我的疑问是“我们如何配置本地的tomcat和unix的tomcat box,以便在部署时读取不同的属性文件?”有什么不同的方法。最简单的方法是向JVM传递一个系统参数来标识环境,然后在jar中打包dev.properties和local.properties @Pr
@PropertySource(value = {"classpath:local.properties", "classpath:${ENVX}.properties"}, ignoreResourceNotFound = true)
如果未指定-DENVX=dev for dev(添加到tomcat脚本),则使用-DENVX=dev for dev(添加到tomcat脚本)。将拾取local.properties。最简单的方法是将系统参数传递给JVM以标识环境,然后在jar中打包dev.properties和local.properties
@PropertySource(value = {"classpath:local.properties", "classpath:${ENVX}.properties"}, ignoreResourceNotFound = true)
如果未指定-DENVX=dev for dev(添加到tomcat脚本),则使用-DENVX=dev for dev(添加到tomcat脚本)。将获取本地属性。可以使用spring的最简单的现成解决方案是有两个文件,命名为
application-dev.properties
和application-prod.properties
,如果您通过-Dspring.profiles.active=dev
或prod
,则将激活该属性。您在部署应用程序时传递此参数。没有配置,没有注释,没有xml。只要保持命名约定应用程序something.properties
spring最简单、现成的解决方案就是有两个文件,命名为application-dev.properties
和application-prod.properties
,如果您通过-Dspring.profiles.active=dev
或prod
,则将激活该属性。您在部署应用程序时传递此参数。没有配置,没有注释,没有xml。只要您保持命名约定应用程序something.properties
我就不投票,因为似乎没有进行任何尝试:。我建议您花几分钟时间阅读:我投票结束这个问题,因为这个问题可能最好被问一个我不赞成的问题,因为它似乎没有尝试过:。我建议你们花几分钟时间读一读:我投票结束这个问题,因为这个问题最好先问一次