我们经常使用 HashMap, 但有时候需要根据 key 进行排序。
通过 Collections.sort()
Map 的 key 是字符串类型的,需要先把字符串转成数字型。使用 reversed() 方法可以让序列倒序。
1 | public class MapSortDemo { |
通过 TreeSet 方式
遍历 HashMap 中所有元素,放入 TreeSet 中,就可以排好序了。例子下回再讲。
我们经常使用 HashMap, 但有时候需要根据 key 进行排序。
Map 的 key 是字符串类型的,需要先把字符串转成数字型。使用 reversed() 方法可以让序列倒序。
1 | public class MapSortDemo { |
遍历 HashMap 中所有元素,放入 TreeSet 中,就可以排好序了。例子下回再讲。
Spring Boot Actuator 是 Spring Boot 的一套监控系统。
依赖
1 | <dependency> |
顺便提一句,spring boot 的官方依赖,一般是 spring-boot-starter-xxxx 这种格式的。非官方依赖则是 xxxx-spring-boot-starter 这种格式的。
启动项目。
访问 http://localhost:8080/actuator
可以看到有两个endpoints,一个是 health, 一个是 info。
访问 health:
http://localhost:8080/actuator/health
1 | { |
访问 info:
http://localhost:8080/actuator/info
1 | { } |
是一个空对象。
我们可以在 application.yml 配置文件中做如下配置:
1 | management: |
management.endpoint.health.show-details=always
表示在访问 health 时,除了显示 UP 这个状态以外,还要显示更多的信息。
1 | { |
endpoints.web.exposure.include=metrics, health, info
这个表示可以显示的endpoint。
这个值可以填写 *
,但是,如果是yaml文件,必须是'*''
,而 application.properties 可以直接写 *
。这是 yaml 文件和 properties 文件的区别。
我们可以设置 info:
1 | info: |
这样,在访问 info endpoint 时,就可以显示上面配置的信息了。
1 | { |
如果 yaml 里面带了环境变量,在开发时,可以在 IDEA 里面设置。在控制台运行时,命令如下:
java -jar xxx.jar --SOME_ENV=certain_env
平时我们使用的时间时间戳一般都是13位带毫秒数和10位不带毫秒数的。.net有个 ticks 的概念,是18位的时间戳。
意义是从公元1月1日零点开始的,到现在有多少个100纳秒。
这个 ticks * 100 为纳秒数,然后除以 1000 变为微秒数。
1 | from datetime import * |