Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring将一个application.properties用于生产,另一个用于调试_Java_Spring - Fatal编程技术网

Java Spring将一个application.properties用于生产,另一个用于调试

Java Spring将一个application.properties用于生产,另一个用于调试,java,spring,Java,Spring,我有一个Spring应用程序,我希望能够在配置之间切换,这取决于我是调试服务器还是服务器正在生产环境中运行。(配置的不同之处在于数据库位置之类的东西。) 理想情况下,我希望在启动时将命令行参数传递给我的Spring应用程序,并设置应用程序配置 我有两个单独的application.properties文件,一个带有生产值,另一个带有调试值。如何在两者之间切换?Spring配置文件似乎是一条可行之路。您可以用-Dprofile=之类的东西启动应用程序。看一看 编辑:在重新阅读您的问题后,我得出结论

我有一个Spring应用程序,我希望能够在配置之间切换,这取决于我是调试服务器还是服务器正在生产环境中运行。(配置的不同之处在于数据库位置之类的东西。)

理想情况下,我希望在启动时将命令行参数传递给我的Spring应用程序,并设置应用程序配置


我有两个单独的application.properties文件,一个带有生产值,另一个带有调试值。如何在两者之间切换?

Spring配置文件似乎是一条可行之路。您可以用-Dprofile=之类的东西启动应用程序。看一看


编辑:在重新阅读您的问题后,我得出结论,您可能实际上需要更基本的东西:将数据库属性放在外部。根据您的应用程序,您可以使用属性配置器的@Value。查看spring文档。

您可以有3个属性文件,
application-dev.properties
application-prod.properties
application.properties
。您可以在dev属性文件中指定所有开发属性,并在prod文件中指定生产配置属性

并在
应用程序.properties
文件中指定配置文件,如下所示

spring.profiles.active=dev

或者您可以使用命令行中的
-Dprofile=
参数选择/覆盖配置文件。

这也是我需要的!。当我浏览文档时,我在@configuration类中迷失了方向。很高兴看到有一个简单的答案。是否需要spring引导?application.properties是否总是读取?例如,如果配置文件是dev?@powder366 yes,它将加载app.properties,那么另一个文件(如果两者中都存在属性)将被profiles命令行覆盖,该文件应为“-Dspring.profiles.active=prod”或“-Dspring.profiles.active=dev”