java – Spring Boot 2没有序列化LocalDateTime

我最近尝试使用spring-boot 2实现微服务.

现在,每当我尝试从REST服务返回包含java.time.LocalDateTime的对象时,LocalDateTime将被序列化为整数数组.像这样:

{
  "id": "5bf1425f9f8de267f04b22ad",
  "description": "aaaaaarrrgggghhhhh",
  "timestamp": [
    2018,
    11,
    18,
    11,
    43,
    43,
    889000000
  ],
  "time": 2.25,
  ...
}

我尝试通过application.yml中的设置配置ObjectMapper

spring:
  jackson:
    serialization:
      write-dates-as-timestamps: false

但不起作用.我也试过通过Spring Configuration类配置一个新的ObjectMapper,如下所示:

@Configuration
public class JacksonConfig {
  @Bean
  @Primary
  public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
    final ObjectMapper objectMapper = builder.build();
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    return objectMapper;
  }
}

我的配置被加载(调试器在断点处停止) – 它只是它什么都不做.

我尝试手动添加jackson依赖项(也用于jsr310模块)到我的pom.xml – 也没有任何运气.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
</dependency>

出于某种原因,看起来Spring Boot忽略了我对ObjectMapper的任何尝试,并且它不断返回相同的结果.

在application.yml中为com.fasterxml设置日志级别为DEBUG也不会产生任何输出:

logging:
  level:
    com.fasterxml: DEBUG

我使用Spring Boot 2.1.0-RELEASE和Jackson 2.9.7.

基本的pom文件是从https://start.spring.io生成的.我的项目编译并在Java 8 JVM上运行.

解决方法:

这个答案是基于teppic对原帖的评论.

问题是由@EnableWebMVC在我的一个@Configuration类上引起的.删除@EnableWebMVC立即解决了问题.

上一篇:JavaSE基础知识(7)—常用类


下一篇:@JsonIgnoreProperties(ignoreUnknown = false)在Spring 4.2.0和更高版本中不起作用