【问题标题】:How to tell spring boot which property files to load according to the server?如何根据服务器告诉spring boot要加载哪些属性文件?
【发布时间】:2021-12-26 12:01:03
【问题描述】:

我有这种情况,我需要根据服务器名称加载属性文件。

我在这个结构中有resource

我有 2 台不同的服务器。假设 SERV-A 和 SERV-B,这些服务器中的每一个都有各自的 e1、e2 服务器。例如..SERV-A-e1, SERV-A-e2, SERV-B-e1, SERV-B-e2。代码库是一样的。

resource - |
           |-SERV-A - |
                      |-application.properties
                      |-application-e1.properties
                      |-application-e2.properties


           |-SERV-B - |
                      |-application.properties
                      |-application-e1.properties
                      |-application-e2.properties

所以我希望当我在服务器 SERV-A 上部署我的应用程序时,它应该从 resource/SERV-A 读取 application.properties 和 application-e1.properties 文件,当我在服务器 SERV-B 上部署它时,它应该从 @ 读取987654325@

【问题讨论】:

    标签: spring spring-boot spring-mvc application.properties


    【解决方案1】:

    我认为您可以使用基于配置文件的属性来实现这一点。 Docs here。但是您可能需要使用文件夹结构,您可能需要将SERV-BSERV-A 带到应用程序属性名称中,例如application-serv-a.propertiesapplication-serv-a-e1.properties。显然,对于许多服务器来说,扩展性并不大。还有一个类似的问题here

    我想您可以像这样利用活动配置文件:

    -Dspring.profiles.active=application-serv-a-e1.properties
    

    【讨论】:

      【解决方案2】:

      感谢@Anton Belev。

      我能够解决这种情况。 我重新创建了我的 resource 结构。

      resource - |
                 |----------
                            |-application.properties
                            |-application-SerA-e1.properties
                            |-application-SerA-e2.properties
                            |-application-SerB-e1.properties
                            |-application-SerB-e2.propertie
      

      所以现在我想在 SERVER-A 上进行部署。我可以简单地给出一个简单的 java 命令并让它使用正确的属性集运行。

      java -jar -Dspring.profiles.active=SerA-e1 /path/to/jar/NameOFYourJar.jar &
      

      【讨论】:

        猜你喜欢
        • 2022-01-14
        • 2014-01-05
        • 2021-12-15
        • 1970-01-01
        • 2015-06-18
        • 2019-03-30
        • 2017-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多