简单介绍:
在之前我们编写配置文件的时候,有时候多种技术的配置的属性值的默认属性的单位不同,比如在Tomcat中,对于最大连接时间就是以毫秒为单位,但是对于session的过期时间就是以分钟为单位,像这种单位不不统一就容易造成我们在编写配置文件的时候数值输入错误。那么我们就来稍微介绍一下关于计量单位以及对属性做一些基本的数据校验。
常用计量单位:
在我们常用的计量单位中,有一些比如时间上的毫秒,秒,天,星期,月,年等,那么我们如何在配置文件中实现只写单纯的数字但是我在显示输出的后可以带着单位一起输出,这样就能知道我们输入的数字是什么单位了。
1、首先导入坐标:
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>humanize-duration</artifactId>
<version>3.0.0</version>
</dependency>
2、在我们接收数据的类中,对类中接收数据的属性做一些修改:
注意在我们的类中要做两件事情,第一件事就是修改我们接收数据的数据类型为Duration,这个类数专门用来描述时间的计量单位,可以设置时间的单位,在配置中只写数字就可以输出对应的单位。这个对应的单位的设置就是通过我们的注解了:@DurationUnit,这个注解就是用来设置单位的,这个注解的属性是一些常量,这些常量对应的有天,小时,月,年等:
我们选择小时来看一下它的输出结果:
我们在配置文件中只写了一个12,但是我们在输出的时候确实输出了PT12H,这个12H就表示是12小时,除了小时,还可以设置为分钟:
然后我们来看输出的结果:
可以看到刚才输出的H已经变成了M,M代表的就是分钟啊,这样我们就对时间的格式有了一个简单的认知,如果我们不知道某个属性的单位,我们就可以看到它的单位是什么。
文件计量单位:
除了时间的计量单位,还有文件的计量单位,比如我在读取一个文件的时候这个文件的大小,有时候是MB,GB,TB等等,比如我要对读取文件的大小做一个限制,或者是对于缓冲区的一些设置,这时候我肯定是对于文件的大小单位比较敏感的,你想如果我写入一个1,你怎么知道我是要达到1MB刷新还是达到1GB刷新,那么对于文件的单位也可以进行设置:
其实设置的方式与之前是一样的,区别在于用来接收数据的数据类型要改成DataSize,然后设置单位的注解要修改成@DataSizeUnit,同样的注解中具有一些常量用来代表常用的文件大小的单位,比如BYTE,MB,GB,TB等等,我们现在设置的就是BYTE,我们来看运行结果:
可以看到我们输出的时候,除了我们写入的数字之外,还带了一个单位B,这个B就是BYTE的单位,我们可以修改成MB看一下效果:
他最终的显示结果是将12MB转换成了12582912B,也就是说,最终显示的单位都是B,只不过他将我们的单位都转换了。
其他的单位感兴趣的可以自己尝试一下。