gpt4 book ai didi

Spring Cloud Config 客户端不从服务器获取值

转载 作者:行者123 更新时间:2023-12-04 15:44:47 25 4
gpt4 key购买 nike

我一直在关注this来自 Baeldung 的关于设置 Spring Cloud Config 服务器和客户端的教程。我相信自从转到 http://localhost:8888/service-config/development/master 后我已经正确设置了服务器似乎会正确显示定义了 user.role 的 json:

{"name":"service-config","profiles":["development"],"label":"master","version":"d30a6015a6b8cb1925f6e61cee22721f331e5783","state":null,"propertySources":[{"name":"file:///C:.../git/service-config-data/service-config-development.properties","source":{"user.role":"Developer"}},{"name":"file:///C:.../git/service-config-data/service-config.properties","source":{"user.role":"Developer"}}]}

但是,我似乎无法将 Spring Cloud Config 客户端正确连接到服务器 - 客户端无法运行,无法解决 @Value("${user.role}") 上的占位符错误> 注释。我尝试向注释添加默认值,然后手动刷新值(使用 @refreshscope 注释),但无济于事。

我通过使用 --debug --trace 标志运行工具查看了调试和跟踪日志,但我无法找到客户端何时/是否正在调用服务器以及哪个服务器实际寻找的 config-data .properties 文件。我对如何进行有点迷茫。


这是我的服务器application.properties:

spring.application.name=service-config
server.port=8888
spring.cloud.config.server.git.uri=file:///${user.home}/git/service-config-data
spring.cloud.config.server.git.clone-on-start=false
spring.security.user.name=root
spring.security.user.password=toor

service-config-data 文件夹中,有这样的文件:

user.role=Developer

我已经尝试过名为 service-config.properties、service-config-client.properties、service-config-development.properties 和 service-config-client-development.properties 的文件,但它们似乎都无法通过用户角色

这是我的客户:

@SpringBootApplication
@RestController
@RefreshScope
public class ServiceConfigClient {

@Value("${user.role:unknown}")
private String role;

@RequestMapping(
value = "/whoami/{username}",
method = RequestMethod.GET,
produces = MediaType.TEXT_PLAIN_VALUE)
public String whoami(@PathVariable("username") String username) {
return String.format("Hello! You're %s and you'll become a(n) %s...\n", username, role);
}
}

还有我的客户端bootstrap.properties:

spring.application.name=service-config-client
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.username=root
spring.cloud.config.password=toor

management.endpoints.web.exposure.include=*

如何正确地将客户端连接到服务器,以便它可以成功拉取配置数据?谢谢。

最佳答案

通过将 spring.cloud.config.name=service-config 添加到 service-config-client 的 bootstrap.properties 以及添加spring-cloud-config-client 并从我的 pom.xml 中删除 spring-cloud-config-server

关于Spring Cloud Config 客户端不从服务器获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com