该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-stream 5.0.0!spring-doc.cadn.net.cn

用户自定义消息转换器

Spring Cloud Stream 提供了定义和注册额外信息的机制消息转换器s. 要用它,就实现org.springframework.messaging.converter.MessageConverter,将其配置为@Bean. 然后它被附加到现有的消息转换器s.spring-doc.cadn.net.cn

理解这种习俗非常重要消息转换器实现会被添加到现有栈的头部。 因此,习俗消息转换器实现优先于现有的,这让你既能覆盖也能添加现有转换器。

以下示例展示了如何创建消息转换器豆,以支持名为应用/律师资格:spring-doc.cadn.net.cn

@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));
    }
}