用户自定义消息转换器
Spring Cloud Stream 提供了定义和注册额外信息的机制消息转换器s.
要用它,就实现org.springframework.messaging.converter.MessageConverter,将其配置为@Bean.
然后它被附加到现有的消息转换器s.
理解这种习俗非常重要消息转换器实现会被添加到现有栈的头部。
因此,习俗消息转换器实现优先于现有的,这让你既能覆盖也能添加现有转换器。 |
以下示例展示了如何创建消息转换器豆,以支持名为应用/律师资格:
@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));
}
}