首先 我在配置文件 application.yml 中 配置了一个textdata
里面声明了一个time 用来记录服务器超时时间
然后 我们在属性类中 读取这个属性
这里 我们声明 读取配置文件中的 textdata属性 来填充我们的 textData类中的两个属性 并声明get set函数
然后重写了 toString 函数 方便大家打印观察
最后 我们条件装配 并输出这个类
但是呢 这个时间单位 存在一定争议
time -1 自然是没什么好说的 负一代表永不超时
但是 如果我们写个3 那么 可能就会有误会 是 3秒 还是 3分钟 又或者是 3小时?
这里 我们将代码改成这样
package com.example.webdom.domain;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.time.Duration;
@ConfigurationProperties("textdata")
public class textData {
private long time;
private String uniTs;
private Duration serverTimeOut;
public long getTime() {
return time;
}
public String getUniTs() {
return uniTs;
}
public Duration getServerTimeOut() {
return serverTimeOut;
}
public void setTime(long time) {
this.time = time;
}
public void setUniTs(String uniTs) {
this.uniTs = uniTs;
}
public void setServerTimeOut(Duration serverTimeOut) {
this.serverTimeOut = serverTimeOut;
}
@Override
public String toString() {
return "textData{" +
"time=" + time +
", units='" + uniTs + '\'' +
", serverTimeOut='" + serverTimeOut + '\'' +
'}';
}
}
炸了 我声明了一个 Duration 类型的值 叫 serverTimeOut
定义了他的 get set函数 然后 在toString上加上了它的输出
然后在 application.yml 配置文件上加上它的配置
又是一个3 那就还是同一个问题 是 3 秒 还是 3分钟 还是3小时呢?
别急 我们先运行看看
serverTimeOut的格式发生了一些变化
PT 这是它的标准单位
最后的 s 代表秒
0.003
千分之三
这里 计算过来 就是 3毫秒
通常你用 long 描述时间 大部分做过的java工程师 也会按毫秒去读
但是这种就更强调了格式
避免了出现争议或误会
重要的是 我们可以自定义他的单位
我们在声明变量的上面 写上 @DurationUnit(ChronoUnit.) 提示中就会出现各种时间单位
这里 我们来个小时 HOURS
我们再次运行 他就变成了 一个 3H的单位