提问者:小点点

Spring Cloud Config Client应用程序不使用bootstrap.properties


我正在学习spring cloud的一些教程,在我的配置客户端应用程序中遇到了一个问题。我有一个运行在Linux机器上的Eureka服务器,在我的Mac上有一个配置服务器,它可以正确地向Eureka服务器注册。我用spring初始化器生成了一个配置客户端应用。我的依赖关系是:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

我有一个像这样的bootstrap.properties文件:

spring.application.name=config-client-app
spring.cloud.config.discovery.enabled=true
eureka.client.serviceUrl.defaultZone=http://192.168.1.125:8761/eureka/

当配置客户端应用程序启动时,它无法注册到Eureka服务器,因为它正在寻找在本地计算机上运行的实例。如果我把它放在application.properties,那么它确实注册到eureka,但名称为UNKNOWN。

eureka.client.serviceUrl.defaultZone=http://192.168.1.125:8761/eureka/

由此看来,配置客户端应用程序没有使用 bootstrap.properties 文件。根据我在类路径上使用 spring-cloud-starter-config 所读到的内容,它应该在启动时查找 bootstrap.properties 文件。

主应用程序类有以下注释。

@SpringBootApplication
@EnableDiscoveryClient
@RestController

我在这里试图实现的是让客户机向尤里卡询问配置服务器的位置,然后从那里获取它的配置。

谢谢Andrew


共1个答案

匿名用户

基于这篇文章,我认为我已经解决了这个问题。Spring Cloud配置:客户端不尝试连接到配置服务器

我添加了

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

添加到我的pom.xml,现在它看起来像预期的那样工作。