如何在春季应用中注册自定义杰克逊滤波器? [英] How to registrer custom jackson filter in spring application?
问题描述
我已阅读以下问题:
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屋!