gpt4 book ai didi

spring-boot - 如何在spring boot的@Value注解中读取变量或连接一个属性

转载 作者:行者123 更新时间:2023-12-04 01:20:19 25 4
gpt4 key购买 nike

我有一个 POJO 类,它在 Spring Boot 中从 application.yaml 文件中读取属性。在这里,我需要根据主题值和另一个字符串的组合将默认值设置为 groupId(在未给出时获取)。

private String topic;

@Value("${topic}_test")
private String groupId;

我试过这个但得到错误

Could not resolve placeholder 'topic' in value "${topic}_test



我创建了一个变量并尝试在 @Value 中访问它但失败了。
请提供任何建议以访问此

最佳答案

默认值

假设您的 application.yml 文件中有这样的属性

topic: myFavoriteTopic

下面的代码会将值“myFavoriteTopic”赋给变量 groupId如果 Spring 能够使用 key topic 加载属性来自 application.yml。如果不是,它将分配 默认值 “我的默认主题”。
@Value("${topic:my default topic}")
private String groupId;

设置 null作为默认值,使用:
@Value("${topic:#{null}}")

要使用空字符串作为默认值,请使用:
@Value("${topic:}")

从变量中获取键名

在您的代码片段中,您有一个 String topic多变的。对于 Spring 框架,这个变量是 未使用 在属性值检索中。当您这样做时 @Value("${topic}") , "topic"是 Spring 将在 application.yml 中查找的键的名称。无法在运行时根据 Java 变量的值确定键的名称。原因是可以在类代码执行之前加载属性。

_test 后缀

同样在您的代码片段中,您使用 @Value("${topic}_test") .在这种情况下,Spring 所做的是将“_test”连接到为属性键主题检索的值。在我的第一个例子中, groupId将被分配“myFavoriteTopic_test”。

关于spring-boot - 如何在spring boot的@Value注解中读取变量或连接一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53413234/

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