6

我的 application.yml 文件如下。如何将其转换为 application.properties 我正在尝试但如何在同一个文件中写入多个属性。它给了我重复的关键错误。

 ---
  spring:
    profiles: peer1
  eureka:
     instance:
        hostname: peer1
     client:
        serviceUrl:
           defaultZone: http://peer2/eureka/

 ---
 spring:
    profiles: peer2
 eureka:
    instance:
      hostname: peer2
    client:
      serviceUrl:
         defaultZone: http://peer1/eureka/
4

4 回答 4

3

IntelliJ 和其他 IDE 提供了相同的插件。

例如 - https://plugins.jetbrains.com/plugin/13804-convert-yaml-and-properties-file

安装插件,右键单击您的 yaml 或属性文件并选择 - “转换 yaml 和属性文件”。

于 2020-07-29T04:12:39.300 回答
0

使用属性文件时,同一文件中的每个配置文件不能有多个“部分”,这是仅适用于 Yaml 的功能。您将必须创建多个属性文件,每个配置文件一个,如下所述:https ://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto -change-configuration-depending-on-the-environment

要对属性文件执行相同的操作,您可以使用 application-${profile}.properties 指定特定于配置文件的值

您将拥有一个包含公共值的主 application.properties 文件,然后每个配置文件都有一个 application-${profile}.properties 文件,其中包含与环境/配置文件相关的值。

最后,您必须在运行应用程序时将活动配置文件设置为系统属性,或者直接在主 application.properties 文件中设置,如下所述:https ://docs.spring.io/spring-boot/docs/当前/参考/html/howto-properties-and-configuration.html#howto-set-active-spring-profiles

于 2018-08-28T13:57:53.243 回答
0

您需要创建不同的文件,例如:

  • 应用程序-dev.properties
  • 应用程序-prod.properties
  • 应用程序-test.properties

然后你在application.properties中定义你的活动配置文件:

 spring.profiles.active=dev
于 2018-08-28T14:09:31.380 回答
0

spring.config.activate.on-profile在 Spring Boot 2.4 中,可以为此目的使用开关,之后定义的所有内容spring.config.activate.on-profile=myprofile仅在活动配置文件设置为myprofile. 在给定的示例中,您将执行以下操作:

#-- Peer1 Config
spring.config.activate.on-profile=peer1
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2/eureka/
#-- Peer2 Config
spring.config.activate.on-profile=peer2
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1/eureka/

有关更多信息,请参阅https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4

于 2021-03-30T12:41:33.773 回答