【发布时间】:2019-11-12 17:11:54
【问题描述】:
我希望能够覆盖
spring.datasource.url
spring.datasource.user
spring.datasource.password
在每个应用程序开始使用环境变量;
那是因为我正在尝试 dockerize 应用程序和数据库。
我想在 .env 文件中指定url, user, password(用于 docker-compose)
并与应用程序容器(连接到数据库)和数据库容器(能够连接)共享它们。
我试过了
export SPRING_DATASOURCE_URL=${url}
export SPRING_DATASOURCE_USER=${user}
export SPRING_DATASOURCE_PASSWORD=${password}
./mvnw spring-boot:run
但它似乎只拾取最后一个参数(在这种情况下为密码)
我也试过了
./mvnw spring-boot:run \
-Dspring.datasource.url=${url} \
-Dspring.datasource.user=${user} \
-Dspring.datasource.password=${passwrod} \
但这个似乎只关心第一个(在这种情况下是 url)。
我真的很想知道是否有任何可行的方法来实现这一点 通过终端还是我每次都必须覆盖属性文件?
更新
问题确实在我身上。
这是spring.datasource.username,而不是user。真的很抱歉浪费时间。
【问题讨论】:
-
听起来你做错了什么,因为我使用了这两种方法并且它们都可以正常工作。
-
@Deadron 总而言之,我花了 3 个小时试图找出到底是什么问题。您是否尝试从 application.yml 中删除所有三个属性?因为如果我留下其中的 2 个并将第三个作为参数传递,它工作正常
标签: java spring-boot datasource