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