我最近尝试使用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立即解决了问题.