1

我正在使用微服务架构,其中服务是通过 Spring Boot 完成的,为了控制它们,我使用 zuul 作为代理,使用 eureka 作为注册和配置服务器作为配置提供程序。

在微服务中,我将 bootstrap.yml 文件配置如下:

spring:
  application:
    name: portal-gca-server-${MYENV:local}
  cloud:
    config:
      uri: http://localhost:9090

如上所见,我在配置服务器中查找的配置文件名是根据我的环境变量,否则我得到本地配置文件。这工作正常,但是当我在开发机器上运行测试时它永远不会工作,因为它不是搜索测试配置文件而是搜索位置,因为开发机器没有环境变量。我知道我可以注册环境变量来运行测试,但这不是我的意图,否则我必须一直这样做才能运行测试和运行本地应用程序。

有没有办法解决这个问题?我已经尝试使用注释:

webEnvironment = SpringBootTest.WebEnvironment.MOCK
@ActiveProfiles("test")
@TestPropertySource(locations="classpath:application-test.properties")

它们都没有任何好处,因为应用程序在执行时要做的第一件事就是根据 bootstrap.yml 获取 git 中的信息。

有没有人经历过这个?

4

1 回答 1

2

转到您的bootstrap.yml然后添加:

spring:
  cloud:
    config:
     enabled: false
于 2019-04-01T12:13:36.550 回答