爲了便於隱藏用戶名和密碼,咱們有時會用到「環境變量」。java
Spring Boot提供了很好的機制,能夠在配置文件中,如application.yml書寫如下格式,而後在代碼中@Value就能夠獲取「環境變量」的值。但這有一個不大不小的坑...spring
mail:
smtp:
auth: true
host: smtp.xxmail.com
user-name: XX監控中心
user: ${EMAIL_USERNAME}
password: ${EMAIL_PASSWD}
recipients: xx@xxx.com
若是IDEA先打開,環境變量後加入,在IDEA調試代碼時,就會出現沒法獲取環境變量的問題,報null的錯,如:app
org.springframework.beans.factory.UnsatisfiedDependencyException:..................Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'XXXX' in value "${XXXX}"spa
解決辦法,很簡單:先加入環境變量,從新打開IDEA便可。調試
要注意,關閉全部的IDEA再重啓,不然,仍是沒法加載環境變量。code