【问题标题】:Spring Boot Deployment in different environments不同环境下的 Spring Boot 部署
【发布时间】:2018-10-27 19:10:40
【问题描述】:

我对 Spring Boot 很陌生,我们正在开发一个 Spring Boot 应用程序(打包为 War 文件)。在 tomcat 服务器上的更高环境中部署此 war 文件时, 1.我们可以为war中的diff环境配置application.properties(无论是dev,int,uat,prod)吗? 或者 2. 配置application.properties的时候,我们可以把它放在tomcat的一个conf文件夹中,在war文件之外。 (类似于将 context.xml 放在传统的 Web 应用程序中)并且应用程序仍然会拾取它?

【问题讨论】:

  • @JBNizet 感谢您的链接,我的问题是,一旦我配置了配置文件特定的属性,我们可以将它们放在 war 文件之外的 conf 文件夹(在 Tomcat 中)以加载它们吗?
  • 你可以把它们放在我链接到的文档解释的任何地方。

标签: java spring-boot java-ee-8


【解决方案1】:

是的,您可以为不同的环境设置不同的配置文件。假设我们有devqaprod 环境。您需要在 application.properties 所在的同一位置创建三个文件,名称如下:

  • application-dev.properties 用于dev 环境
  • application-qa.properties 用于qa 环境
  • application-prod.properties 用于prod 环境

现在,您只需在application.properties 中设置spring.profiles.active=qa。目前,我们设置了qa 配置文件。你可以设置你想要的。

注意您在新创建的配置文件中设置的属性将仅适用于活动配置文件。例如,如果您在dev 文件中设置了一些属性,那么它将仅适用于dev 环境。但是application.properties 中设置的属性将适用于所有环境。所以不依赖环境的配置可以放在application.properties

【讨论】:

  • 但这可能很危险,因为您只需更改 application.properties 中的 spring.profiles.active 即可访问所有环境。我认为为每个环境部署比将它们都放在同一个地方更安全。
【解决方案2】:

您可以为您的环境配置不同的配置文件。对于您的开发环境,您可以添加一个 application-dev.properties(或 .yml)或对于 PROD 一个 application-prod.properties, 然后只需使用该配置文件启动您的应用程序。

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2023-03-03
    • 2011-11-29
    • 1970-01-01
    • 2021-07-10
    相关资源
    最近更新 更多