【问题标题】:Spring Default Profile Selection Based on ScopeSpring基于范围的默认配置文件选择
【发布时间】:2015-10-19 11:55:15
【问题描述】:

我的应用程序有一个嵌入式数据库作为“测试”依赖项(Maven 测试),但是当您想在没有任何 -D 开关的情况下启动应用程序时,这会导致异常,因为在 application.yml 中声明了 jdbc 驱动程序(请参阅下面)。

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

这可能看起来微不足道,但是对于我们的团队来说,您可以在 IDE 中成功运行测试感到困惑,但是当您尝试“运行应用程序”时它会失败,除非您设置 -D 开关。

datasource:
  url: jdbc:h2

spring:
  profiles: profile1

datasource:
  url: jdbc:postgresql

【问题讨论】:

    标签: java maven spring-boot


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      1. application.yml移动到src/test/resources/

      2. 您可以使用

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

      【讨论】:

      • 我需要根据我是否正在运行测试来设置默认配置文件,不幸的是这不起作用。你知道根据我是在运行测试还是正常运行来设置配置文件的方法吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 2013-05-12
      • 2017-02-28
      • 1970-01-01
      • 2012-04-19
      • 2021-04-18
      相关资源
      最近更新 更多