You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.2.1中如何配置接收java.time.Duration的YAML属性?

正确配置Spring Boot中java.time.Duration类型属性的方法

针对server.netty.connection-timeout这个java.time.Duration类型的属性,不能用嵌套seconds和nanos的方式配置,Spring Boot 3.2.1提供两种标准有效配置方式:

1. 使用简化时长格式字符串

直接填写数字加时间单位的字符串,支持的单位包括:

  • ns(纳秒)、us(微秒)、ms(毫秒)
  • s(秒)、m(分钟)、h(小时)、d(天)

示例配置:

server:
  netty:
    connection-timeout: 10s  # 配置为10秒

也支持多单位组合:

server:
  netty:
    connection-timeout: 1m30s  # 配置为1分30秒

2. 使用ISO-8601标准时长格式

遵循ISO-8601的PnDTnHnMn.nS格式,其中:

  • P为固定前缀,代表"Period"
  • nD、nH、nM分别对应天数、小时数、分钟数,n.nS对应含小数的秒数

示例配置:

server:
  netty:
    connection-timeout: PT10S  # 配置为10秒

如果需要精确到微秒/纳秒:

server:
  netty:
    connection-timeout: PT10.00001S  # 配置为10秒加10微秒

补充说明

Spring Boot的配置绑定机制原生支持java.time.Duration类型,会自动解析上述格式的字符串,无需手动编写反序列化逻辑。嵌套seconds和nanos的方式不生效,是因为Duration类没有对应的setter方法或公共构造函数来支持这种嵌套属性绑定。

内容的提问来源于stack exchange,提问作者Sergey Zolotarev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:11:00