我有一个Spring Boot应用程序,它使用默认的Spring Boot Jackson配置从@RestController
返回一个映射。一切都很好,除了地图包含一个java.sql.Timestamp
,它被序列化为毫秒:
{"timestamp":1428401341884}
我希望将其序列化为文本表示,因此我使用
配置了该选项spring.jackson.serialization.write_dates_as_timestamps=false
在我的application.properties
。
现在,如果我有一个单元测试只是从我的Spring配置中自动装配ObjectMapper,那么它可以工作,配置标志可以工作,我可以在时间戳的文本和数字表示之间切换。
@RunWith(SpringJUnit4ClassRunner)
@SpringApplicationConfiguration(classes = [Application])
@WebAppConfiguration
class JacksonJsonSerialisationTest {
@Autowired ObjectMapper objectMapper
@Test public void serialiseTimestamp() throws Exception {
Map test = [ timestamp: new java.sql.Timestamp( new Date().getTime() ) ]
println objectMapper.writeValueAsString( test )
}
}
但是,当我检查我的控制器时,这个标志被忽略,时间戳总是被序列化为数字格式。
任何人遇到这个或知道我错过了什么?