Giriş
Bu sınıfın dışında bir de JsonMessageConverter sınıfı var. Bu sınıf Jackson 2 kütüphanesini kullanır.
Bu converter şu header'ları kullanır. Bu yüzden HashMap<Foo, Bar> gibi bir şey çevirebilir.
public static final String DEFAULT_CLASSID_FIELD_NAME = "__TypeId__";public static final String DEFAULT_CONTENT_CLASSID_FIELD_NAME = "__ContentTypeId__";public static final String DEFAULT_KEY_CLASSID_FIELD_NAME = "__KeyTypeId__";
constructor
Örnek
Mesajları JSON olarak göndermek için şöyle yaparız.
setClassMapper metodu
@Bean
public MessageConverter jsonMessageConverter() {
return new Jackson2JsonMessageConverter();
}
public AmqpTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setMessageConverter(jsonMessageConverter());
return rabbitTemplate;
}
Örnek
Sadece Foo sınıfını JSON'a çevirmek, diğer sınıfları reddetmek için şöyle yaparız. Eğer başka bir tipi çevirmeye çalışırsak org.springframework.amqp.support.converter.MessageConversionException fırlatır
@Bean
public MessageConverter jsonConverter() {
Jackson2JsonMessageConverter converter = new Jackson2JsonMessageConverter();
DefaultClassMapper mapper = new DefaultClassMapper();
mapper.setDefaultType(Foo.class);
converter.setClassMapper(mapper);
return converter;
}
Hiç yorum yok:
Yorum Gönder