spring boot 配置文件中 时间参数解析到Duration

比如redis中lettuce中,刷新时间间隔的配置:

spring:
    redis:
        lettuce:
            cluster:
                refresh:
                    adaptive: true
                    period: 10s

其中period参数,我们看到在 RedisProperties中,是Duration类型,这个class没有有参构造方法, 起解析遵循spring-boot的转换器进行解析,如下:

配置解析按照spring-boot核心包org.springframework.boot.convert中的StringToDurationConverter按照约定的格式进行解析(其他相关解析转换器为 DurationToNumberConverter DurationToStringConverter NumberToDurationConverter)

格式约定定义在 DurationStyle中的 Unit 中,支持如下的后缀格式:

		NANOS(ChronoUnit.NANOS, "ns", Duration::toNanos),

		/**
		 * Microseconds.
		 */
		MICROS(ChronoUnit.MICROS, "us", (duration) -> duration.toMillis() * 1000L),

		/**
		 * Milliseconds.
		 */
		MILLIS(ChronoUnit.MILLIS, "ms", Duration::toMillis),

		/**
		 * Seconds.
		 */
		SECONDS(ChronoUnit.SECONDS, "s", Duration::getSeconds),

		/**
		 * Minutes.
		 */
		MINUTES(ChronoUnit.MINUTES, "m", Duration::toMinutes),

		/**
		 * Hours.
		 */
		HOURS(ChronoUnit.HOURS, "h", Duration::toHours),

		/**
		 * Days.
		 */
		DAYS(ChronoUnit.DAYS, "d", Duration::toDays);

最后由转换器转换为 对应的Duration对象,而非直接调用Duration中的parse方法进行转换。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值