当前位置: 首页 > news >正文

SpringBoot--yml配置文件的时间/大小的单位转换

原文网址:SpringBoot--yml配置文件的时间/大小的单位转换_IT利刃出鞘的博客-CSDN博客

简介

说明

本文介绍SpringBoot的yml(properties)配置文件的时间/大小的单位转换。

概述

SpringBoot可以将yml中的配置绑定到一个Java类的字段,而且支持单位的转换。以时间为例,yml中指定为2m,则可以用Duration来接收这个字段,接收到的字段值为3分钟。

注意

本处的单位转换支持配置放到一个类中,也支持@Value等。

时间的转换

概述

Spring 使用 java.time.Duration 类代表时间大小,以下场景适用:

  1. 除非指定 @DurationUnit ,否则一个 long 代表的时间为毫秒。
  2. ISO-8601 标准格式( java.time.Duration 的实现就是参照此标准)
  3. 你也可以使用以下支持的单位(用大写也可以):
    1. ns - 纳秒
    2. us - 微秒
    3. ms - 毫秒
    4. s - 秒
    5. m - 分
    6. h - 时
    7. d - 天

示例

application.yml

custom:monitor:name: myMonitorinterval: 3m

实体类

package com.knife.config;import lombok.Data;import java.time.Duration;@Data
public class MonitorProperty {private String name;private Duration interval;
}

配置类

package com.knife.config;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MonitorConfig {@ConfigurationProperties(prefix = "custom.monitor")@Beanpublic MonitorProperty monitorProperty() {return new MonitorProperty();}
}

测试类

package com.knife.controller;import com.knife.config.MonitorProperty;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@Autowiredprivate MonitorProperty monitorProperty;@GetMapping("/test")public String test() {return "test success";}
}

测试

打个断点,然后请求:

工具类实例

SpringBoot的转换时间的工具类是:DurationStyle(org.springframework.core.convert.support包)。

示例:

import org.springframework.core.convert.support.DurationStyle;
import java.time.Duration;public class MyApp {public static void main(String[] args) {String durationString = "3m";Duration duration = DurationStyle.SIMPLE.parse(durationString);System.out.println(duration); // 输出 PT3M (3 minutes)}
}

大小的转换

上边是文章部分内容,为便于维护,全文已转移到此网址:SpringBoot-yml配置文件的时间/大小的单位转换 - 自学精灵

相关文章:

SpringBoot--yml配置文件的时间/大小的单位转换

原文网址:SpringBoot--yml配置文件的时间/大小的单位转换_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍SpringBoot的yml(properties)配置文件的时间/大小的单位转换。 概述 SpringBoot可以将yml中的配置绑定到一个Java类的字段&#x…...

【算法业务】互联网风控业务中的拒绝推断场景算法应用分享(涉及半监督算法、异常检测、变分自编码、样本权重自适应调整、迁移学习等)

1. 业务目标和任务描述 该项目是很早期的一个工作,属于互联网信贷风控场景,研究并应用信贷中的拒绝推断任务,处理方式也许对于目前的一些业务还有参考意义,因此这里做下分享。拒绝推断是指在信贷业务中,利用已知的接受…...

Windows PowerShell相关笔记

之前我写的一篇,把我的PS(power shell)该了配置文件 pyqt5vscode 配置坑笔记_vscode使用pyqt command failed-CSDN博客 文件里写的自动加载conda #region conda initialize # !! Contents within this block are managed by conda init !!…...

力扣9.24

2207. 字符串中最多数目的子序列 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母。 你可以在 text 中任意位置插入 一个 字符,这个插入的字符必须是 pattern[0] 或者 pattern[1] 。…...

NRF21540—低功耗蓝牙,蓝牙mesh、Thread和Zigbee和2.4 GHz私有协议范围扩展射频前端模块

nRF21540是一款射频前端模块(FEM),可用于改善短距离无线产品的传输范围和连接鲁棒性。作为一款辅助性设备,nRF21540是一种“即插即用型”的无线传输范围扩展器,可与nRF52和nRF53系列的高级多协议无线SoC搭配使用,所需的外部器件数…...

2024最新Linux Socket编程

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket&am…...

Linux下的驱动开发二

一、IO模型 I/O 模型在操作系统中用于处理应用程序与设备驱动之间的数据传输。I/O 通信模型的核心是解决程序与设备之间如何高效、合理地进行数据通信。不同的模型通过阻塞、非阻塞、同步、异步的方式来控制数据流和处理 I/O 请求。 注:在驱动开发中可以定义一个全…...

【JAVA报错已解决】 Java.lang.ArrayIndexOutOfBoundsException

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

2024 CSP 游记

J 组 初赛 早上也是五点钟就起来 打游戏 了。 考点在八达小学,除了感觉小、破、旧就没有其他感觉( 我妈也是成功的给我提前一小时到达考场。 拿到试卷后,瞄一眼,咋这么简单,和一本通的模拟卷难度一样?…...

双十一有什么推荐好物?,这些你不能错过的宝藏好物推荐

随着双十一的临近,这场盛大的购物狂欢蓄势待发!为了让大家不在琳琅满目的商品中徘徊,琪琪用心归纳了一份购物清单,分享那些我亲自使用过,觉得必须拥有的商品。 这些商品不仅价格公道,而且质量上乘&#xf…...

NSSCTF [HUBUCTF 2022 新生赛]simple_RE(变种base64编码)

文件无壳 拖入IDA中 shiftF12查看可疑字符串 发现两串字符串 一看这两个等于号就猜测是base64编码 进入主函数看看 这段代码是一个简单的 C 语言程序,主要功能是接受用户输入的字符串作为“flag”,然后通过对输入的字符串进行一些处理和比较来验证是否输…...

clickhouse使用extract提取分号之前,之后,中间的内容

Area:‘安徽;宣城;宣州’,要提取分号之前,两个分号之前,最后一个分号之后的内容作为省市区 这是最后得到的正确的结果,感谢chatgpt 刚开始本来想使用splitByString -- 宣城 select splitByString(;,安徽;宣城;宣州)[2…...

Unity3D Compute Shader同步详解

前言 在Unity3D中,Compute Shader是一种强大的工具,它利用GPU的并行处理能力来执行复杂的计算任务,从而减轻CPU的负担,提高游戏的性能和效率。然而,由于GPU的工作方式,对共享资源的访问需要特别注意同步问…...

3D模型在UI设计中应用越来越多,给UI带来了什么?

当前3D模型在UI设计中应用很多,极大地拓展了UI设计的发挥空间,也拓宽了UI的应用领域,本文分享下UI中引入3D模型到底能带来什么价值. 3D模型在UI设计中的应用可以给用户界面带来以下几个方面的好处: 更真实的视觉体验:…...

前端框架的选择与考量:一场技术的盛宴

在当今快速迭代的Web开发领域,前端框架的选择成为了项目启动初期不可忽视的重要环节。随着React、Vue、Angular等主流框架的崛起,以及Svelte、Quasar等新兴力量的加入,开发者们面临着前所未有的选择难题。本文旨在探讨前端框架的选择依据、主…...

第五部分:7---信号的捕捉

目录 信号递达期间,该信号会被屏蔽直到递达完成。 sigaction实现信号的捕捉: 案例:在处理2号信号时屏蔽3号信号。 子进程退出向父进程发送SIGCHLD信号: 信号递达期间,该信号会被屏蔽直到递达完成。 当某个信号的处…...

HarmonyOS鸿蒙开发实战( Beta5.0)页面加载效果实现详解实践案例

鸿蒙HarmonyOS开发实战往期必看文章:(持续更新......) HarmonyOS NEXT应用开发性能实践总结(持续更新......) HarmonyOS NEXT应用开发案例实践总结合集(持续更新......) 一分钟了解”纯血版&…...

计算机网络中的VLAN详解

文章目录 计算机网络中的VLAN详解一、引言二、VLAN的作用与原理1、VLAN的作用2、VLAN的工作原理2.1、VLAN标签(Tag) 三、VLAN的配置与接口类型1、VLAN的配置2、接口类型 四、VLAN的应用场景1、企业网络2、数据中心3、教育网络 五、VLAN间的通信六、总结 …...

Nacos学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…...

后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0926)

十四、文章分类添加编辑 [element-plus 弹层] Git仓库&#xff1a;https://gitee.com/msyycn/vue3-hei-ma.git 点击显示弹层 准备弹层 const dialogVisible ref(false)<el-dialog v-model"dialogVisible" title"添加弹层" width"30%">…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...