引自:https://blog.csdn.net/chen462488588/article/details/109057342
今天學習eladmin項目中看到application-dev.yml中數據庫配置中寫法很奇怪,簡單記錄下。
#配置數據源
spring:
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: ${DB_USER:root}
password: ${DB_PWD:123456}
這種表達類似於EL表達式,通過key來獲取value。此處${DB_HOST:localhost}表示先從配置文件yml中或者啟動命令中讀取DB_HOST的值,如果沒有讀取到,就是用默認值localhost(其他變量類似)。好處是換一個新的環境時,不用改配置文件,直接在啟動命令上指定值就可以。
比如在啟動項目時使用命令來指定
java -jar -DB_HOST=localhost xxx.jar
