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