Json 如何在Spring中为HTTP REST响应体配置Jackson
我正在尝试使用Spring 4.3.4和Spring Boot 1.4.2构建REST服务。我需要做的是配置Jackson实例,使我能够访问对象映射器的实际配置(例如,仅使用字段,不使用getter/setter方法等) 在调试Spring代码的长时间会话后,我尝试了以下所有操作:Json 如何在Spring中为HTTP REST响应体配置Jackson,json,spring,rest,spring-boot,jackson,Json,Spring,Rest,Spring Boot,Jackson,我正在尝试使用Spring 4.3.4和Spring Boot 1.4.2构建REST服务。我需要做的是配置Jackson实例,使我能够访问对象映射器的实际配置(例如,仅使用字段,不使用getter/setter方法等) 在调试Spring代码的长时间会话后,我尝试了以下所有操作: @Bean用于Jackson2对象映射器 Jackson2ObjectMapperBuilder的@Bean 用于Jackson2ObjectMapperFactoryBean的@Bean 以上这些都没有任何影响
用于Jackson2对象映射器@Bean
- Jackson2ObjectMapperBuilder的
@Bean
- 用于Jackson2ObjectMapperFactoryBean的
@Bean
调用AllencompacsingFormHttpMessageConverter
新映射Jackson2HttpMessageConverter()
- 。。。它构建了一个新的
Jackson2ObjectMapperBuilder
- …通过静态方法
Jackson2ObjectMapperBuilder.json()
静态的(!!),并且完全忽略了任何类型的配置,无论是XML、Java@configuration
类还是应用程序.properties
问题是:我是否需要实现我自己的转换器来取代AllencompacsingFormHttpMessageConverter
(这可能吗?),或者是否有其他解决方案来配置Jackson实例?我们整天都在按照手册中描述的方式进行。这样做是行不通的,Spring源代码忽略了配置。在这种情况下,RTFM不是很有用……您是否已将@EnableWebMvc
注释添加到配置中?因为如果您有,这将禁用对MVC的Spring引导支持/自定义。因此,如果它存在,请将其移除。否则,请发布一个完整的最小示例来重现问题。是的,我们确实激活了@EnableWebMvc注释。基本上,我们通过实现配置适配器和修改消息转换器来“修复”这个问题。我们用我们自己的实现替换了AllEncompassingHttpMessageConverter,除了我们自己的Jackson配置之外,它做了完全相同的事情。这可能不是最漂亮的解决方案,但它确实有效。然而,我对Spring Boot配置的信心再次动摇。我重复一遍。您不能有EnableWebMvc。移除它,一切都会更好。我们整天都在按照手册中描述的方法来做。这样做是行不通的,Spring源代码忽略了配置。在这种情况下,RTFM不是很有用……您是否已将@EnableWebMvc
注释添加到配置中?因为如果您有,这将禁用对MVC的Spring引导支持/自定义。因此,如果它存在,请将其移除。否则,请发布一个完整的最小示例来重现问题。是的,我们确实激活了@EnableWebMvc注释。基本上,我们通过实现配置适配器和修改消息转换器来“修复”这个问题。我们用我们自己的实现替换了AllEncompassingHttpMessageConverter,除了我们自己的Jackson配置之外,它做了完全相同的事情。这可能不是最漂亮的解决方案,但它确实有效。然而,我对Spring Boot配置的信心再次动摇。我重复一遍。您不能有EnableWebMvc。去掉它,一切都会好得多。