如何为Spring SQS自定义Jackson序列化器

Zip*_*per 2 spring amazon-sqs jackson

如何为SQS自定义Jackson JSON序列化器?我已经四处搜寻,但到目前为止,我发现的所有内容都与Spring网络相关,并且似乎没有任何方法可以保留对Spring SQS使用的序列化器的引用,因此我可以添加我的自定义类型(Java 8 Date的东西)

ESa*_*ala 5

我只是查看了的源代码,spring-cloud-aws以了解如何实例化Jackson对象映射器,请参见此处:QueueMessagingTemplate.java

事实证明,它有一个接受的构造函数MessageConverter,因此您可以执行以下操作:

@Configuration
public class SpringAwsMessagingConfig {

    @Bean
    public QueueMessagingTemplate myMessagingTemplate(AmazonSQS amazonSqs, ResourceIdResolver resolver) {
        ObjectMapper mapper = new ObjectMapper();
        // configure the Jackson mapper as needed

        MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
        converter.setSerializedPayloadClass(String.class);
        converter.setObjectMapper(mapper);

        return new QueueMessagingTemplate(amazonSqs, resolver, converter);
    }

}
Run Code Online (Sandbox Code Playgroud)