在 @Builder Class 中添加可配置变量

Add a Configurable Variable in a @Builder Class

我有一个@Builder class 并且其中使用的变量之一 class 需要是可配置的。我试过了

@Value("${string.propertiesFile}")  
private String stringValue;

我将 application.properties 文件中定义的值插入我的 stringValue 变量。但是,stringValue 始终为空。 如何将文字值注入我的@Builder Class?

非常感谢!

据我所知,要使 @Value 注释起作用,spring 需要控制 bean 创建过程,以便它可以注入值。 @Value 可用于将值注入到 Spring 管理的 bean 中的字段,它可以应用于字段或 constructor/method 参数级别。当使用 lombok @Builder 注释时,您实际上是在实现构建器模式。因此 spring 无法控制 bean 的创建,因此您不能将值直接注入到 class 中。

相反,您可以做的是使用 @Value 在您使用的另一个 spring 管理的 class 中注入值这个构建器并可能将值传递给构建器,如:

@Service
public SomeServiceClassImpl {

@Value("${string.propertiesFile}")  
private String stringValue;

 public void someMethod() {

   BuilderPatternClass testBuilderPatternClass =  BuilderPatternClass.builder()
     .name(stringValue)
     .id(1)
     .build();
  }

}