弹簧靴的新手。
在探索 Spring Boot 环境变量时,了解到环境变量可以通过${KeyName}
代码访问。
有一个问题,例如,
案例 1:
在 @Configuration 文件中,我们使用@Value(value = "${KeyName}")
. 因此,我们使用几乎相同的语法来访问环境变量和访问 application.properties 中的键。
案例 2: 当尝试使用 system.getEnv("keyname") 访问 application.properties 中的键时,我只得到了 null。
案例 3: 最近在 Kubernetes 中使用 spring boot 进行 configmap工作。
配置文件看起来像,
spec:
containers:
- name: demo-configconsumercontainer
image: springbootappimage:latest
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: example-configmap
configMap 中的所有值都导出为环境变量,我正在通过@Value(value = "${KeyName}")
和 by访问这些值system.getEnv(KeyName)
。
- 我的问题是,当案例 2 不是时,案例 3 是如何工作的。
- Spring boot 是否以这种方式允许访问
${KeyName}
而不是访问system.getEnv(KeyName)
?(即案例2)
有人可以在这里澄清我的问题吗?