springcloud api网关属性文件声明变量

问题描述

我在springboot应用程序中有如下application.yaml

spring:
  cloud:
    gateway:
      routes:
      - id: pgService
        uri: http://localhost:2005/
        predicates:
        - Path=/employee/**
      - id: inMateService
        uri: http://localhost:2006/
        predicates:
        - Path=/consumer/**

以上声明的变量是针对Spring Cloud Gateway的

我想在application.properties文件中声明这些相同的变量。 我不想使用Yaml文件。请帮助我实现这一目标 谢谢

解决方法

只需更新ans。

应该类似于这种格式:

spring.cloud.gateway.discovery.locator.predicates[0].name: Path
spring.cloud.gateway.discovery.locator.predicates[0].args[pattern]: "'/'+serviceId+'/**'"
spring.cloud.gateway.discovery.locator.predicates[1].name: Host
spring.cloud.gateway.discovery.locator.predicates[1].args[pattern]: "'**.foo.com'"
spring.cloud.gateway.discovery.locator.filters[0].name: Hystrix
spring.cloud.gateway.discovery.locator.filters[0].args[name]: serviceId
spring.cloud.gateway.discovery.locator.filters[1].name: RewritePath
spring.cloud.gateway.discovery.locator.filters[1].args[regexp]: "'/' + serviceId + '/(?<remaining>.*)'"
spring.cloud.gateway.discovery.locator.filters[1].args[replacement]: "'/${remaining}'"

参考https://cloud.spring.io/spring-cloud-gateway/multi/multi__configuration.html


如果您使用的是intelliJ,则以下插件非常有助于在.yaml和.properties之间转换格式: https://plugins.jetbrains.com/plugin/13804-convert-yaml-and-properties-file