Spring Cloud Stream 公开了一种定义和注册其他 s 的机制。 要使用它,请实现,将其配置为 . 然后,它将附加到现有的 s 堆栈中。MessageConverterorg.springframework.messaging.converter.MessageConverter@BeanMessageConverterSpring中文文档

请务必了解自定义实现已添加到现有堆栈的头部。 因此,自定义实现优先于现有实现,这使您可以覆盖和添加到现有转换器。MessageConverterMessageConverter
请务必了解自定义实现已添加到现有堆栈的头部。 因此,自定义实现优先于现有实现,这使您可以覆盖和添加到现有转换器。MessageConverterMessageConverter

下面的示例演示如何创建消息转换器 Bean 以支持名为 :application/barSpring中文文档

@SpringBootApplication
public static class SinkApplication {

    ...

    @Bean
    public MessageConverter customMessageConverter() {
        return new MyCustomMessageConverter();
    }
}

public class MyCustomMessageConverter extends AbstractMessageConverter {

    public MyCustomMessageConverter() {
        super(new MimeType("application", "bar"));
    }

    @Override
    protected boolean supports(Class<?> clazz) {
        return (Bar.class.equals(clazz));
    }

    @Override
    protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
        Object payload = message.getPayload();
        return (payload instanceof Bar ? payload : new Bar((byte[]) payload));
    }
}