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

How to customize the Jackson serializer for Spring SQS

如何为 SQS 自定义 Jackson JSON 序列化程序?我四处搜索,但到目前为止,我发现的所有内容都与 Spring 网络内容有关,而且似乎没有任何方法可以获取对 [=15] 的序列化程序的引用=] SQS 使用,以便我可以添加自定义类型(Java 8 日期内容)

我刚刚查看了 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);
    }

}