当前位置: 首页 > 知识库问答 >
问题:

从spring cloud Consult加载值/属性的正确方法

杜成和
2023-03-14
@Autowired
private Environment env;

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

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

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

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

有没有一种方法可以在不更改类中的任何代码的情况下从consul加载这些属性?还是需要更改这些类来遵循使用env对象的示例?

共有1个答案

魏誉
2023-03-14

我能把它弄好,但有点棘手。您需要添加spring cloud Consult starter依赖项。我只有spring cloud Consult config依赖项。

我必须在application.yml和bootstrap.yml中添加ConsulConfig属性,我的boostrap中的属性只是设置格式和数据键:

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

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

 类似资料:
  • 我有一个内部application.yml文件,位于classpath资源中,包含以下字段: 有一个外部配置文件:config.properties。它定义了一些要在我的服务器上下文中重写的字段。文件配置.属性: 我正在使用以下命令运行应用程序: 如何使spring正确地重写内部配置文件,使其只重写额外的属性(redis.hostname、redis.password),但仍然保留在内部文件中定义

  • 我在尝试添加

  • 问题内容: 文本框或文本区域的属性的正确值是多少? 我以前看过以下内容: 问题答案: 对于XHTML,是有效的标记。 对于HTML5,W3C对其样本有效并使用了它们。 实际上,两种方法都可以在所有主要浏览器上使用。

  • 问题内容: 有一个像这样的简单Python类: 我想检查以下约束: “说明不能为空” “值必须大于零” 我应该: 1.在创建垃圾邮件对象之前验证数据吗? 2.检查方法上的数据? 3.在Spam类上创建一个方法,并使用spam.isValid()进行调用? 4.在Spam类上创建一个静态方法,并使用Spam.isValid(description,value)进行调用? 5.检查二传手声明中的数据?

  • 我有一个画布,其中包含带有的对象和带有的其他对象。当我将此画布转换为JSON并重新加载时。这些对象具有默认属性。即没有居中旋转,对象是可选择的。我可以知道为什么会发生这种情况吗?很明显,像centeredRotation、可选这样的属性不包含在JSON中。 {“type”:“rect”,“originX”:“左”,“originY”:“顶部”,“左”:92,“顶部”:53,“宽度”:150,“高度

  • 问题内容: 我正在从python控制台进行调试,并且每次更改时都想重新加载模块,因此不必退出控制台并重新输入。我正在做: 但我收到: 重新加载整个用户类的正确方法是什么?有没有更好的方法可以做到这一点,也许可以在调试时自动更新? 谢谢。 问题答案: 根据要求,您能做的最好的就是 如果直接使用用户模块而不是直接使用用户模块,那将更好,更清洁(这几乎永远不是正确的方法)。那就是 这会做您想要的。但是,