杰克逊忽略了spring.jackson.property-naming-strategy = SNAKE_CASE。我正在使用springBootVersion 1.4.2.RELEASE。在我的application.properties文件中,添加了
spring.jackson.property-naming-strategy = SNAKE_CASE
但是Jackson并没有兑现这个财产,我的REST响应仍然是camelCase。有趣的是,该注释可以正常工作
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
有了这个注释,我得到了snake_case响应。但是我不想注释每个响应类,这有点烦人。
我也尝试使用完全合格的类名,
spring.jackson.property-naming-strategy = com.fasterxml.jackson.databind.PropertyNamingStrategy.SnakeCaseStrategy
那也不起作用
我@EnableWebMvc在我的应用程序(face-palm!)中的一个类(ExceptionHandler)中添加了注释。
@EnableWebMvc
但是,根据这个问题,
如果您具有@EnableWebMvc批注,则它将禁用Spring MVC的自动配置,包括配置其消息转换器以自定义Jackson的序列化。 当您使用@EnableWebMvc时,这是预期的行为,因为这样做是在告诉Spring Boot您想要控制Spring MVC的配置。这包括配置其HTTP消息转换器以按照您的需求(反)序列化JSON。 如果要覆盖Jackson的配置,则可以使用spring.jackson。*属性,或者,如果需要更多控制,则声明自己的Jackson2ObjectMapperBuilder bean。
如果您具有@EnableWebMvc批注,则它将禁用Spring MVC的自动配置,包括配置其消息转换器以自定义Jackson的序列化。
当您使用@EnableWebMvc时,这是预期的行为,因为这样做是在告诉Spring Boot您想要控制Spring MVC的配置。这包括配置其HTTP消息转换器以按照您的需求(反)序列化JSON。
如果要覆盖Jackson的配置,则可以使用spring.jackson。*属性,或者,如果需要更多控制,则声明自己的Jackson2ObjectMapperBuilder bean。
删除@EnableWebMvc注释后,此属性将按预期工作。