application.yml ``` spring: config: import: optional:file:.env[.properties] datasource: url: ${DATASOURCE_URL:jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8} username: ${DATASOURCE_USERNAME:root} password: ${DATASOURCE_PASSWORD:root} ``` .env ``` DATASOURCE_USERNAME=test DATASOURCE_PASSWORD=test ```
java -jar xxx.jar --spring.datasource.username=test --spring.datasource.password=test
data: redis: host: ${REDIS_HOST:127.0.0.1} username: ${REDIS_USER:default} password: ${REDIS_PWD:123}
打包的时候根据 profile 忽略掉其他环境的配置,不同环境 jar 就只包含公共 yml+自身的 yml 了。
1. 使用外部 env 文件管理:
优先使用 env 中的值,如果 env 中未找到对应值,则使用 yml 中的值,根据不同环境指定不同的 env 文件;
2. 启动时候通过启动参数配置
环境特定的放 application-${spring.profiles.active}.yml