spring-rabbit-json DefaultClassMapper to Bean

The mapper should be a `@Bean` so it's properly initialized.
This commit is contained in:
Gary Russell
2017-01-31 16:00:37 -05:00
parent dd1abd8f11
commit bd98e8127f

View File

@@ -116,15 +116,20 @@ public class Application {
});
Jackson2JsonMessageConverter jsonConverter = new Jackson2JsonMessageConverter();
jsonConverter.setClassMapper(classMapper());
messageListener.setMessageConverter(jsonConverter);
container.setMessageListener(messageListener);
return container;
}
@Bean
public DefaultClassMapper classMapper() {
DefaultClassMapper classMapper = new DefaultClassMapper();
Map<String, Class<?>> idClassMapping = new HashMap<>();
idClassMapping.put("foo", Foo.class);
idClassMapping.put("bar", Bar.class);
classMapper.setIdClassMapping(idClassMapping);
jsonConverter.setClassMapper(classMapper);
messageListener.setMessageConverter(jsonConverter);
container.setMessageListener(messageListener);
return container;
return classMapper;
}
@Bean