我的应用程序有一个嵌入式数据库作为“测试”依赖项(Maven 测试),但是当您想要在没有任何 -D 开关的情况下启动应用程序时,这会导致异常,因为 jdbc 驱动程序是在 application.yml 中声明的(请参阅如下)。
是否可以根据范围(即运行时或测试)设置数据源?或者更好的是,您可以在不使用任何 -D 开关的情况下更改默认配置文件(例如 -Dspring.profiles.active=test)吗?
这可能看起来微不足道,但令我们团队感到困惑的是,您可以在 IDE 中成功运行测试,但当您尝试“运行应用程序”时,除非您设置 -D 开关,否则它会失败。
datasource:
url: jdbc:h2
spring:
profiles: profile1
datasource:
url: jdbc:postgresql
最佳答案
如果您仅将嵌入式数据库用于测试,那么您可以将 application.properties (或 .yml)放置在文件夹 src/test/resources/
中,您将在其中放置用于测试运行的所有属性至少这对我有用。因此,您无需将生产属性放入配置文件中,它们会在您运行应用程序时使用。
关于java - Spring基于范围的默认配置文件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33213746/