【问题标题】:Spring use one application.properties for production and another for debugSpring 使用一个 application.properties 进行生产,另一个用于调试
【发布时间】:2016-01-18 01:34:45
【问题描述】:

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

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

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

【问题讨论】:

标签: java spring


【解决方案1】:

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

并在您的application.properties 文件中指定配置文件,如下所示

spring.profiles.active=dev

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

【讨论】:

  • 这就是我需要的!当我查看文档并迷失在 @configuration 类中时。很高兴看到有一个简单的答案。
  • 需要弹簧靴吗?
  • application.properties 是否总是被读取?例如,如果配置文件是 dev?
  • @powder366 是的,它加载 app.properties,然后加载另一个文件,如果两个文件中都存在一个属性,它会被配置文件覆盖
  • 命令行应该是“-Dspring.profiles.active=prod”或“-Dspring.profiles.active=dev”
【解决方案2】:

春季配置文件似乎是要走的路。您可以使用 -Dprofile= 之类的内容启动您的应用程序。看看this example

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多