杰克逊的 `Visibility.Any` 表演

Jackson's `Visibility.Any` performance

使用 Jackson 和 Lombok 的 @Accessors(fluent=true) 需要添加 @JsonAutoDetect(Visibility.Any) 注释:

@Data
@NoArgsConstructor
@Accessors(fluent=true)
public class Pojo{
  private String fieldOne;
  private String fieldTwo;
}

很好奇Visibilty.Any的表现。它是使用反射还是添加了编译时挂钩?

Jackson无论如何都使用反射加缓存来实现序列化和反序列化过程。使用此注释不会增加任何明显的性能成本。有关更多信息,请查看它是如何实现的:JsonAutoDetect.java。它允许您更改字段、getter、setter、创建者和构造函数的默认可见性配置。