Spring Configuration与流利的设置者或自定义设置者一起使用的属性

时间:2019-08-01 12:10:50

标签: java spring spring-boot

我们正在将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()

2 个答案:

答案 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类不提供此功能。