友達、
Jacksonフレームワークは、シリアル化プロセス中に型情報を出力するための注釈ベースのアプローチを提供します。
どのクラスでも@JsonTypeInfoアノテーションを使用したくありません。
上記の注釈に代わるものはありますか?
はいの場合、可能であれば同じことを行う例を提供してください。
JacksonAnnotationIntrospector をオーバーライドし、setAnnotationIntrospector を使用して ObjectMapper で Introspector を使用します。AnnotationIntrospector のコード スニペットを次に示します。
@Override
public TypeResolverBuilder<?> findTypeResolver(MapperConfig<?> config,
AnnotatedClass ac, JavaType baseType) {
if (Modifier.isAbstract(baseType.getRawClass().getModifiers())){
StdTypeResolverBuilder typeResolverBuilder = new StdTypeResolverBuilder();
typeResolverBuilder.typeProperty("@class");
typeResolverBuilder.inclusion(As.PROPERTY);
typeResolverBuilder.init(Id.CLASS, null);
return typeResolverBuilder;
}
return super.findTypeResolver(config, ac, baseType);
}
いくつかの代替案:
JacksonAnnotationIntrospector
いつ、どのように同等の型情報を使用する必要があるかを決定する独自のロジックをオーバーライドして実装します。