基于范围的Spring默认配置文件选择

时间:2015-10-19 11:55:16

标签: java maven spring-boot

我的应用程序有一个嵌入式数据库作为"测试"依赖(Maven测试),但是如果你想在没有任何-D开关的情况下启动应用程序会导致异常,因为jdbc驱动程序是在application.yml中声明的(见下文)。

是否可以根据范围(即运行时或测试)设置数据源?或者更好的是,您可以在没有任何-D开关的情况下更改默认配置文件(例如-Dspring.profiles.active = test)吗?

这看起来似乎微不足道,但是我们的团队很难让您在IDE中成功运行测试,但是当您尝试运行应用程序时#34;除非你设置-D开关,否则它会失败。

datasource:
  url: jdbc:h2

spring:
  profiles: profile1

datasource:
  url: jdbc:postgresql

2 个答案:

答案 0 :(得分:1)

如果您仅将嵌入式数据库用于测试,那么您可以将application.properties(或.yml)放在文件夹src/test/resources/中,在该文件夹中放置测试运行的所有属性。至少这对我有用。因此,您不需要将生产属性放入配置文件中,并在运行应用程序时使用它们。

答案 1 :(得分:0)

  1. application.yml

  2. 中移动src/test/resources/
  3. 您可以使用

  4. 设置默认配置文件
    
        datasource.url=jdbc:h2  =>
    
        datasource:
          url: jdbc:h2  
        ---
    
        spring:
          profiles: profile1
    
        datasource:
          url: jdbc:postgresql