новинка для весенней загрузки.
Изучая переменные env для весенней загрузки, мы узнали, что
Переменные env доступны из ${KeyName}
из кода.
Есть вопрос как,
Дело 1:
В файлах @Configuration мы обращаемся к ключам в application.properties, используя @Value(value = "${KeyName}")
.
Итак, мы используем почти одинаковый синтаксис для доступа к переменным env и доступа к ключам в application.properties.
Дело 2:
При попытке доступа к ключам в application.properties с помощью system.getEnv («имя ключа») я получаю только ноль.
Дело 3:
Недавно работал над configmap в кубернетес с пружинной загрузкой .
Файл конфигурации выглядит так,
spec:
containers:
- name: demo-configconsumercontainer
image: springbootappimage:latest
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: example-configmap
Все значения из configMap экспортируются как переменные среды и
Я получаю доступ к этим значениям @Value(value = "${KeyName}")
и system.getEnv(KeyName)
.
- У меня вопрос, как работает случай 3, когда случай 2 не работает.
- Spring boot сделан таким образом, что он разрешает доступ по
${KeyName}
, а не system.getEnv(KeyName)
? (т.е. Дело 2)
Может кто-нибудь уточнить мои вопросы здесь.