从SpringBoot 2.2.2开始,带有Jackson(2.10.1)的自定义分页序列化程序不起作用,并且在序列化时不会执行。
/**
* This class allows to specify configuration related to the Web MVC part.
*/
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
private static final String JSON_DATA_PROPERTY = "data";
/**
* Allows to configure a {@link JsonSerializer} for pagination.
*
* @return an instance of {@link Module}.
*/
@SuppressWarnings("rawtypes")
@Bean
public Module springDataPageModule() {
return new SimpleModule().addSerializer(Page.class, new JsonSerializer<Page>() {
@Override
public void serialize(final Page page, final JsonGenerator jsonGenerator,
final SerializerProvider serializers) throws IOException {
jsonGenerator.writeStartObject();
jsonGenerator.writeObjectField(JSON_DATA_PROPERTY, page.getContent());
jsonGenerator.writeObjectFieldStart("paging");
jsonGenerator.writeNumberField("page", page.getNumber() + 1);
jsonGenerator.writeNumberField("totalPages", page.getTotalPages());
jsonGenerator.writeNumberField("totalElements", page.getTotalElements());
jsonGenerator.writeNumberField("perPage", page.getSize());
jsonGenerator.writeEndObject();
jsonGenerator.writeEndObject();
}
});
}
...
}
在SpringBoot 2.2.1中,此自定义的分页序列化程序已应用并可以工作。你看到这个问题了吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。