如何在春季应用中注册自定义杰克逊滤波器? [英] How to registrer custom jackson filter in spring application?

查看:72
本文介绍了如何在春季应用中注册自定义杰克逊滤波器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已阅读以下问题:

https://stackoverflow.com/a/25609465/2674303

我有spring-mvc应用程序.如果我用@ResponseBody注释对控制器方法进行注释并在方法内部返回对象,则服务器会将json提供给客户端.我的课程路径中有杰克逊.

I have spring-mvc application. If I annotate controller method with @ResponseBody annotation and return object inside method, then server gives json to clients. I have Jackson in classpath.

在提到的示例中,编写了以下代码

In mentioned example wrote following code

ObjectMapper mapper = new ObjectMapper();
mapper.setFilters(new SimpleFilterProvider().addFilter("filter", new ExcludeIdFilter()));

据我了解,这段代码已经在spring内部构件中编写了.

As I understand this code already written somewhere in spring internals...

请说明如何注册自定义杰克逊过滤器?

Please clarify how to register custom jackson filter ?

推荐答案

您可以像这样配置您自己的MappingJackson2HttpMessageConverter实例:

You can configure your own instance of MappingJackson2HttpMessageConverter like this:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

  @Override
  public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {

    ObjectMapper mapper = Jackson2ObjectMapperBuilder().json()
       .filters(new SimpleFilterProvider().addFilter("filter", new ExcludeIdFilter()));

    MappingJackson2HttpMessageConverter converter = 
        new MappingJackson2HttpMessageConverter(mapper);

    // then replace the default MappingJackson2HttpMessageConverter
    // with your custom one in the list of configured converters
  }

}

这篇关于如何在春季应用中注册自定义杰克逊滤波器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆