System.getenv()
通过 System.getenv() 可以获取系统环境变量。可以获取到哪些呢?
获取的变量,属于操作系统的配置,比如:
可以看一下 windows操作系统的环境变量配置:
所以,一般想要获取 操作系统 相关的数据,可以通过 System.getenv()
System.getProperties()
通过 System.getProperties() 可以获取 服务启动的属性。可以获取到哪些呢?
获取的变量,属于 当前进程的配置,比如:
JVM 启动的时候,加上 -Daaa=bbb
那么就可以获取到了
配置文件或者其第三方配置中心
spring boot 项目的配置文件属性 一般使用 application.properties 等
第三放配置中心:像 zookeeper/nacos/Apollo等
区别:
一般 System.getProperties() 和 配置文件或者第三方配置中心 配合使用,如果都有值的话,也是有 优先级顺序的。具体如果使用,根据实际情况来定
spring boot 获取配置文件属性:
spring boot 2.6.2版本
断点打到 org.springframework.boot.context.properties.bind.Binder:444行
可以大概看到,是把 application.properties 文件 包装后,取值。
而不是直接读这个文件,然后取。额。