microservice不从spring云配置服务器microservice获取属性

vof42yt1  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(387)

我想用spring云配置服务器构建一个简单的microservices应用程序。我正在使用github存储库来存储配置文件。目前,我有两个非常简单的微服务。其中之一是云配置服务器,它从github上的远程repo检索属性。在这个微服务的主类中,我添加了@enableconfigserver注解,并在application.properties文件中提供了几个属性:

spring.application.name=cloud-config-server
server.port=8888

spring.cloud.config.server.git.uri=*Remote repo URI*
spring.cloud.config.server.git.username=*Username*
spring.cloud.config.server.git.password=*Password*
spring.cloud.config.server.git.clone-on-start=true

如果我去http://localhost:8888/cloud config server/default一切正常,我的spring cloud config server成功检索属性。
在我的第二个微服务中,我添加了bootstrap.properties和2个属性来连接到云配置服务器:

spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.name=cloud-config-server

我还添加了这个依赖项

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

不幸的是,我的微服务无法从云配置服务器检索属性。当我试图通过@value annotation使用属性时,我得到一个错误:
自动连接依赖项的注入失败;嵌套异常为java.lang.illegalargumentexception:未能解析值“${test.text}中的占位符”test.text“”
我确信,我的属性名“test.text”没有输入错误。

pgpifvop

pgpifvop1#

我已经解决了我的问题。默认情况下,bootstrap.properties文件不再启用。您可以通过添加新的依赖项来启用它:

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

或者,也可以删除bootstrap.properties文件并在application.properties文件中提供这些属性

spring.config.import=configserver:*URI to your cloud config server*
spring.cloud.config.name=*Your cloud config server name*

相关问题