主要用于为引入的外部库中的Bean自动生成Codec。
1. 默认序列化【目标Bean】的所有可序列化字段,只特殊处理【LinkerBean】中声明的字段。
2. 字段之间通过名字匹配,字段的类型需声明为定义字段的类,以方便未来解决冲突。
3. 【LinkerBean】字段上的
DsonProperty、DsonIgnore将被映射到【目标Bean】。
4. 字段的读写代理将映射到【LinkerBean】中的静态方法。
5. DsonSerializable中提到的钩子方法也将映射到【LinkerBean】中的静态方法。
class MyBeanLinker {
MyBean field1; // 表示OuterClass的field1字段
MyBean field2;
public static void beforeEncode(MyBean instance, ConverterOptions options){}
public static void writeObject(MyBean instance, DsonObjectWriter writer){}
public static Bean newInstance(DsonObjectReader reader, TypeInfo typeInfo){}
public static void readObject(MyBean instance, DsonObjectReader reader){}
public static void afterDecode(MyBean instance, ConverterOptions options){}
public static void writeField1(MyBean instance, DsonObjectWriter writer, String dsonName){}
public static void readField1(MyBean instance, DsonObjectReader reader, String dsonName){}
}
Q:与DsonCodecLinker的区别?
A:该注解用于支持复杂的Codec配置,一个Bean描述一个Bean,而且支持复杂的字段读写代理和序列化钩子。
- 作者:
- wjybxx date - 2024/4/11
-
必需元素概要
所需元素 -
可选元素概要
可选元素
-
元素详细资料
-
value
Class<?> value映射的类 -
outputPackage
String outputPackage生成的codec的输出目录 -- 默认值为当前配置类的包名!- 默认值:
""
-
props
DsonSerializable props为类型附加的信息- 默认值:
@cn.wjybxx.dsoncodec.annotations.DsonSerializable
-