【发布时间】:2019-12-10 00:50:43
【问题描述】:
我们将项目 lombok 用于 setter 和 getter,我们更喜欢 fluent 访问器用于 setter 和 getter。当我们将 ConfigurationProperties 与流畅的访问器一起使用时,就会出现问题。 Spring 无法将属性与类字段联系起来。当我们删除 Accessor 注释并拥有经典的 setter 和 getter 时,同样的事情会起作用。有没有办法我们可以使用带有配置属性的自定义设置器
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()
【问题讨论】:
-
Spring 使用 Java Bean 规范来识别属性。这些都是硬连线到 JDK 支持类(自省和反射)中的。所以目前 spring (boot) 不支持自定义 getter 和 setter。
标签: java spring spring-boot