批注接口 DsonCodecLinkerBean


@Target(TYPE) @Retention(SOURCE) public @interface DsonCodecLinkerBean
主要用于为引入的外部库中的Bean自动生成Codec。 1. 默认序列化【目标Bean】的所有可序列化字段,只特殊处理【LinkerBean】中声明的字段。 2. 字段之间通过名字匹配,字段的类型需声明为定义字段的类,以方便未来解决冲突。 3. 【LinkerBean】字段上的DsonPropertyDsonIgnore将被映射到【目标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
  • 必需元素概要

    所需元素
    修饰符和类型
    必需的元素
    说明
    映射的类
  • 可选元素概要

    可选元素
    修饰符和类型
    可选元素
    说明
    生成的codec的输出目录 -- 默认值为当前配置类的包名!
    为类型附加的信息
  • 元素详细资料

    • value

      Class<?> value
      映射的类
    • outputPackage

      String outputPackage
      生成的codec的输出目录 -- 默认值为当前配置类的包名!
      默认值:
      ""
    • props

      为类型附加的信息
      默认值:
      @cn.wjybxx.dsoncodec.annotations.DsonSerializable