我们正在将Project Lombok用于设置者和获取者,而我们更喜欢流利的访问器来实现设置者和Getter。当我们将配置属性与流利的访问器一起使用时,就会出现问题。 Spring无法将属性与类字段关联。当我们删除Accessor批注并具有经典的setter和getter时,同样的事情也起作用。有没有一种方法可以将自定义设置器与Configurationproperties一起使用
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties
@Data
@Accessors(fluent = true)
public class Properties {
private String property1;
private String property2;
}
在以
方式访问此属性时,我们得到了空指针异常properties.property1()
答案 0 :(得分:1)
该框架与by约定一起使用,对于getters命名为get *** / is ***,对于setters命名为set ***。 此外,@ Accessors lombok功能仍然实验。请查看此link
答案 1 :(得分:1)
由于Spring(并因此是Spring Boot)使用Java Beans Specification,为此,它使用可用的默认JDK支持。
自省和反射API将属性定义为getter / setter。设置器为void
,并且获取器应返回实际字段(返回和方法参数类型也必须匹配)。
因此请记住,Spring不支持自定义getter / setter,仅因为JDK类不提供此功能。