java 初始化duration_Spring Boot:java.time.Duration的默认序列化从字符串更改为数字 - java...

我们最近从Spring Boot 2.1.9升级到2.2.1,这导致我们的测试失败。调查导致结果,默认情况下java.time.Duration类型现在序列化为不同的序列。现在,我们将得到"PT15M",而不是在JSON消息中包含字符串"900.0"。 POJO定义如下所示

@JsonProperty(required = true, value = "duration")

@NotNull

private final Duration duration;

现在的问题是,是否可以使用某些配置属性来获得“旧”行为。我知道我们也可以添加注释

@JsonFormat(shape = JsonFormat.Shape.STRING)

但是我更希望通过配置来实现它。

参考方案

当您将spring-boot的版本从2.1.9更改为2.2.1时,Jackson的版本也会更改。从Spring-boot 2.2版开始,Jackson版本更改为2.10。此Jackson版本更改的一部分更改是使用标志SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS而不是早期的WRITE_DATES_AS_TIMESTAMPS序列化Duration时间戳。

通过向application.properties添加以下属性,服务(和序列化功能)的行为将像2.2之前的版本

spring.jackson.serialization.write-durations-as-timestamps=false

Springboot 2.2 Changelist

杰克逊2.10 changelist

杰克逊Issue tracker

Spring Data Cassandra的事务管理 - java

我正在使用Spring和Cassandra作为基础数据库。曾提到过弹簧伞项目“ spring data cassandra”。与休眠不同,在这里无法找到如何管理事务。如果您中的某些人已经合并,请共享要包含的事务管理器的详细信息。 参考方案 Cassandra不支持传统(ACID)的事务。在某些特殊情况下,可以通过一些构造来实现事务原子性,例如原子批处理(请参…IntelliJ Spring MVC教程部署 - java

我尝试了tutorial,当我尝试部署webapp(IntelliJ 13.1.4 Ultimate)时,出现了一个奇怪的错误,如下面的屏幕快照所示。解决此错误的方法是什么? org.jdom.input.JDOMParseException: Error on line 742: The content of elements must consist o…使用RestTemplate调用API时如何捕获超时异常 - java

我有函数调用api,使用RestTemplate。我想在超时将返回null时捕获异常,这是我的代码://Create resttemplate public List getRoleUser(String username) { try{ RestTemplate restTemplate = new RestTemplate(g…Spring Boot测试在Maven中失败,可在IntelliJ中使用 - java

我已经做了一个Spring Boot测试来测试JMS消耗。测试看起来像这样:@RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TES…春季安全值得付出努力 - java

我一直在关注春季安全性,并注意到它是多么大的包装。我想知道是否值得花一些时间来加强这一点。Spring Security 2.0+为您节省了大量时间,还是以任何方式简化了您的项目? java参考方案 几年前,我考虑将其用于Spring项目,并选择了它,因为它是一个非常繁琐的框架,恕我直言,它提供的灵活性不是必需的。 (据我估计)减少我们自己的身份验证/授权的…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值