gpt4 book ai didi

java - 从 Spring Cloud Consul 加载值/属性的正确方法

转载 作者:行者123 更新时间:2023-12-02 03:29:51 26 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,它在 .yml 文件中定义了很多属性。我正在从将属性放在文件中转向将它们放在云中,因此为此我使用 Spring Cloud Consul 中的键/值功能。

我能够从领事检索给定键的值,但我见过的记录的唯一方法也是我能够做到这一点的唯一方法如下:

@Autowired
private Environment env;

@RequestMapping("/test")
String home() {
return env.getProperty("test.property");
}

这很好,但我有一些现有的类仍然设置为以旧方式加载属性:

@Value("${test.property}")
String testProperty;

将 spring cloud consul 的依赖项添加到我的项目后,我收到新错误,指出无法解析所有这些属性。我认为这是因为 spring boot 看到了 consul 依赖项,并且现在忽略了 yml 文件或其中的一部分。

有没有一种方法可以从领事加载这些属性,而无需更改类中的任何代码?或者我是否需要更改这些类以遵循使用 env 对象的示例?

此外,如果您能进一步了解 Spring Cloud Consul 如何与 Spring Boot 配合实现此特定目的,我们将不胜感激。没有太多关于它的文档。

最佳答案

我能够让它工作,但有点棘手。您需要添加 spring cloud consul starter 依赖项。我只有 spring cloud consul 配置依赖项。

我必须将 consul 配置属性添加到我的 application.yml 和 bootstrap.yml 中,我的 boostrap 中的属性仅设置格式和数据键:

spring:
cloud:
consul:
config:
format: YAML
data-key: data

这告诉 Spring Boot 加载一个 yaml blob,它是我的应用程序配置云目录中关键数据的值。

我的 application.yml 中的配置是他们在示例中提供的默认配置。一旦我将这些配置和 @autoconfiguration 标记添加到我的服务主应用程序类中,一切就开始工作了。

关于java - 从 Spring Cloud Consul 加载值/属性的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38251693/

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