如果在映射表中找不到这个属性,就会去找环境变量的值吗
时间: 2024-03-23 09:37:02 浏览: 106
是的,如果在变量映射表中找不到某个属性的值,Spring Boot会尝试从环境变量中获取这个属性的值。具体来说,Spring Boot会先尝试从系统环境变量中获取这个属性的值,如果系统环境变量中不存在这个属性,那么Spring Boot会尝试从系统属性中获取这个属性的值。如果系统属性中也不存在这个属性,那么Spring Boot会将这个属性的值设置为null,这样就可以避免出现异常。
例如,我们可以在YAML配置文件中使用${}占位符来引用环境变量,比如:
```
server:
port: ${PORT:8080}
```
这里使用${}占位符来引用一个名为PORT的环境变量,如果环境变量PORT存在,那么Spring Boot会将${PORT}替换成环境变量PORT的值;如果环境变量PORT不存在,那么Spring Boot会将${PORT}替换成默认值8080。
当Spring Boot解析这个配置文件时,它会先尝试从变量映射表中获取属性port的值,如果找不到,那么Spring Boot会尝试从系统环境变量中获取名为PORT的属性的值,如果系统环境变量中不存在这个属性,那么Spring Boot会尝试从系统属性中获取这个属性的值。如果系统属性中也不存在这个属性,那么Spring Boot会将port的值设置为默认值8080。
总之,如果在变量映射表中找不到某个属性的值,Spring Boot会尝试从环境变量中获取这个属性的值,这样我们就可以在配置文件中使用环境变量来动态配置应用程序的属性值了。
阅读全文