如何通过Spring Boot提供不同的数据库配置?
目前,我有5种可能的数据库配置文件
- CI测试-> h2 mem
- 开发人员环境(可以测试或运行应用程序)-> h2 mem,h2文件或postgres
- 生产-> postgres(理想情况下,凭据不存储在git / war中)
目前,我已将postgres配置为运行该应用程序,并将h2配置为通过application.properties
在java/resource
s和test/resources
在这些情况下更改数据库连接信息的最简单方法是什么?
回答:
正如Deinum M.在评论中提到的那样,最简单的方法是使用特定于配置文件的配置。
Boot允许您拥有一个公共配置文件(application.properties
),然后拥有多个其他文件,每个文件特定于一个配置文件(application-${profile}.properties
)。
例如:
application.properties
-通用配置application-dev.properties
-开发人员配置文件的配置application-ci.properties
-配置CI配置文件
例如,如果您的应用程序使用“ ci”配置文件运行,则将加载默认配置文件以及ci配置文件(其中将包含ci配置文件的数据源配置属性)。
要切换配置文件,可以使用以下选项之一:
- JVM属性:
-Dspring.profiles.active=ci
- 命令行开关:
--spring.profiles.active=dev
对于单元测试,您可以@ActiveProfiles("test")
在测试类上使用批注来告诉Spring单元测试应与测试配置文件一起运行。
另外,如果您不想将生产数据库凭据与源代码一起存储,则可以在生产中部署应用程序时指定外部配置文件:
- 使用命令行开关:
--spring.config.location=/srv/myapp/config.properties
- 使用JVM属性:
-Dspring.config.location=/srv/myapp/config.properties
以上是 如何通过Spring Boot提供不同的数据库配置? 的全部内容, 来源链接: utcz.com/qa/411105.html