我有一个@Builder类,该类中使用的一个变量需要可配置。我已经尝试了
@Value("${string.propertiesFile}")
private String stringValue;
其中,我将在application.properties文件中定义的a值插入到我的 stringValue
变量。然而, stringValue
始终是空的。我怎样才能在我的@Builder类中添加一个注入文字值?
非常感谢!我有一个@Builder类,该类中使用的一个变量需要可配置。
据我了解,对于 @Value
注解要发挥作用,spring需要控制Bean创建过程,这样它才能注入值。@Value
可以用于在Spring管理的Bean中向字段中注入值,它可以应用在字段或构造方法参数级别。当使用lombok @Builder
注解,你本质上是在实现构建者模式。所以spring并不能控制bean的创建,因此你不能直接将值注入到你的类中。
相反,你可以通过使用 @Value
在另 弹簧管理类 从你使用这个构建器的地方,可能会传递给构建器这样的值。
@Service
public SomeServiceClassImpl {
@Value("${string.propertiesFile}")
private String stringValue;
public void someMethod() {
BuilderPatternClass testBuilderPatternClass = BuilderPatternClass.builder()
.name(stringValue)
.id(1)
.build();
}
}