yml文件配置如下:
spring:
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:***}:${DB_PORT:***}/${DB_NAME:***}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
username: ${DB_USER:root}
password: ${DB_PWD:***}
redis:
#数据库索引
database: ${REDIS_DB:**}
host: ${REDIS_HOST:**}
port: ${REDIS_PORT:**}
password: ${REDIS_PWD:**}
#连接超时时间
timeout: 5000
${key:default_value}
这种表达方式是通过key来获取value,如果获取不到就使用后面默认值。
使用场景:
一些直接通过Jar包启动时,可以在启动时手动配置相关参数,如果没有配置,也会自动获取默认值进行启动,如
java -jar -DREDIS_HOST=172.16.0.36 -DREDIS_DB=2 xxx.jar
当然,${}这种形式本来也可以用来获取值,比如在本yml文件中去获取其他位置定义好的值,也可以去获取相关的环境变量。
网友评论