配置文件中的$符
场景再现
配置中有如下这样的用法,现根据网上资料做一个整理
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:***}
spring:
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
使用这种方法也可以获取path中的环境变量如:
在path中配置了M2_HOME即可在springboot中使用下面的方式获取相应的值
maven:
path: ${M2_HOME}
配置文件中的@@符
场景再现
spring:
application:
name: "@artifactId@"
profiles:
active: "@spring.profiles.active@"
用法说明
@@ 获取Maven的工程属性
配置文件的active
场景再现
spring:
profiles:
active: dev,test
用法说明
会同时读取dev和test的配置文件,相同配置项存在覆盖。