引自: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