【发布时间】:2016-01-18 01:34:45
【问题描述】:
我有一个 Spring 应用程序,我希望能够在配置之间切换,具体取决于我是在调试服务器还是服务器在生产中运行。 (配置的不同之处在于数据库位置。)
理想情况下,我想在启动时将命令行参数传递给我的 Spring 应用程序并设置应用程序配置。
我有两个单独的 application.properties 文件,一个带有生产值,另一个带有调试值。如何在两者之间切换?
【问题讨论】:
我有一个 Spring 应用程序,我希望能够在配置之间切换,具体取决于我是在调试服务器还是服务器在生产中运行。 (配置的不同之处在于数据库位置。)
理想情况下,我想在启动时将命令行参数传递给我的 Spring 应用程序并设置应用程序配置。
我有两个单独的 application.properties 文件,一个带有生产值,另一个带有调试值。如何在两者之间切换?
【问题讨论】:
您可以拥有 3 个属性文件,application-dev.properties、application-prod.properties 和 application.properties。您可以在 dev 属性文件中指定所有开发属性,在 prod 文件中指定生产 cionfiguration 属性
并在您的application.properties 文件中指定配置文件,如下所示
spring.profiles.active=dev
或者您可以在命令行中使用-Dprofile= 参数选择/覆盖配置文件。
【讨论】:
春季配置文件似乎是要走的路。您可以使用 -Dprofile= 之类的内容启动您的应用程序。看看this example。
编辑:重新阅读您的问题后,我得出的结论是,您实际上可能想要更基本的东西:将您的数据库属性放在外部。根据您的应用程序,您可以使用属性配置器的@Value。看看 spring 文档。
【讨论】: