Sprint boot activemq, json message, я не хочу указывать сопоставления - PullRequest
0 голосов
/ 07 марта 2019

Как мы можем использовать JMS, как мы это делаем при создании служб отдыха, я имею в виду, что я хочу получить сложный объект в моем слушателе jms, но для этого мне нужно создать вид конфигурации в конфигурации следующим образом:

@Configuration
public class JMSConfiguration {


@Bean
public JmsListenerContainerFactory<?> jmsListenerContainerFactory(CachingConnectionFactory connectionFactory,
                                                                  DefaultJmsListenerContainerFactoryConfigurer configurer) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();

    connectionFactory.setClientId("resetPasswordClientId");
    configurer.configure(factory, connectionFactory);
    MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();

    // I want to avoid this 
    converter.setTypeIdPropertyName("_type");
    Map<String, Class<?>> typemMappings = new HashMap<>();
    typemMappings.put("topic.delete.message", MyMessage.class);
    typemMappings.put("topic.info.message", MyMessage.class);
    converter.setTypeIdMappings(typemMappings);

    factory.setMessageConverter(converter);
    factory.setSubscriptionDurable(true);
    factory.setSubscriptionShared(Boolean.FALSE);
    return factory;
}

}

Можно ли избежать этой конфигурации и сделать десериализацию без какой-либо странной конф?

...