静态方式
直接在bootstrap.yml
或者application.yml
中写死;
spring:
#mysql数据配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://192.168.41.128:3306/gw?useUnicode=true&characterEncoding=utf8&useSSL=false
缺点是参数需要改变时,需要重新改写配置,再打包。特别docker部署时,环境变化了,配置改动麻烦。
解决办法
在yml
文件中,通过${Envirment_variable}
的方式可以获取系统环境变量中的值;如上面的配置改写成:
spring:
#mysql数据配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: ${USER_NAME:root}
password: ${PASSWORD:123456}
url: jdbc:mysql://${IP:192.168.41.128:3306}/gw?useUnicode=true&characterEncoding=utf8&useSSL=false
以上配置,优先设置系统环境变量(USER_NAME、PASSWORD、IP)的值,如果没有,才会使用默认值。
docker部署传入环境变量
- 通过
-e
可以传入环境变量; docker-compose
可以通过environment
传入系统环境变量;