gpt4 book ai didi

java - 使 spring @Value 从静态字段中获取默认值

转载 作者:行者123 更新时间:2023-11-29 08:28:26 30 4
gpt4 key购买 nike

我有一个 java 配置,我在其中使用一些在 application.properties 中定义的属性创建 bean。对于其中一个,我有一个很长的默认值,所以我将这个值提取到此配置的 public static final String 字段中,现在我想制作 @Value 将其用作默认值。

所以最终我想要这样的东西:

@Configuration
public class MyConfiguration {

public static final String DEFAULT_PROPERTY_VALUE = "long string...";

@Bean("midPriceDDSEndpoint")
public DistributedDataSpace<Long, MidPriceStrategy> midPriceDDSEndpoint(
@Value("${foo.bar.my-property:DEFAULT_PROPERTY_VALUE}") String myPropertyValue) {
... create and return bean...
}
}

但是到了 Spring ,我的领域就没有了,所以我很好奇我是否能以某种方式让它查找它。

解决这个问题的一种方法是通过配置 bean 访问这个静态字段:@Value(${foo.bar.my-property:#{myConfigurationBeanName.DEFAULT_PROPERTY_VALUE}}),但是使用这种方法会使构造函数不可读,因为 Value 注释会占用大量空间(因为属性名称和配置 bean 名称比本例中的要长)。有没有其他方法可以让 spring 使用静态字段作为属性的默认值?

最佳答案

我会做
@Value("${foo.bar.my-property:"+ DEFAULT_PROPERTY_VALUE + "}")

关于java - 使 spring @Value 从静态字段中获取默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50395101/

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