代码之家  ›  专栏  ›  技术社区  ›  ka2

Spring Cloud数据流:注册新的自定义kryo序列化程序

  •  0
  • ka2  · 技术社区  · 8 年前

    我正在使用云数据流创建一个系统,我有一个源和一个转换器。我们喜欢使用kryo,但我们的一些类需要自定义kryo序列化程序,我以前写过序列化程序。我们现在使用的是spring-integration-core-4.3.11,自4.2版本以来,该模型(根据文档)发生了更改,使用编解码器而不是MessageConverter接口。

    问题是,我如何在新的编解码器框架中注册kryo序列化程序,我是否从MessageCodec继承了一个新的编解码器实现?我是否创建新的注册器实现?

    只要把实现变成一个bean,它就会被发现吗?我发现编解码器是自动连接的,但没有发现它们被制作出来。。。。

    提前感谢!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Gary Russell    8 年前

    看见 KryoCodecAutoConfiguration .

    PojoCodec 使用您自己的bean,或者简单地添加您的注册器(以及任何其他需要的注册器),SCSt将把它们连接到默认值中 波约科德克 ....

    @Bean
    @ConditionalOnMissingBean(PojoCodec.class)
    public PojoCodec codec() {
        Map<String, KryoRegistrar> kryoRegistrarMap = applicationContext.getBeansOfType(KryoRegistrar.class);
        return new PojoCodec(new ArrayList<>(kryoRegistrarMap.values()), kryoCodecProperties.isReferences());
    }
    
    @Bean
    @ConditionalOnMissingBean(KryoRegistrar.class)
    public KryoRegistrar fileRegistrar() {
        return new FileKryoRegistrar();
    }