繁体   English   中英

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

[英]Spring Default Profile Selection Based on Scope

我的应用程序具有嵌入式数据库作为“测试”依赖项(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/文件夹中,在其中放置所有要运行的测试属性。至少对我有用。 因此,您无需将生产属性放入配置文件中,并且在运行应用程序时会使用它们。

  1. src/test/resources/移动application.yml

  2. 您可以使用


    datasource.url=jdbc:h2  =>

    datasource:
      url: jdbc:h2  
    ---

    spring:
      profiles: profile1

    datasource:
      url: jdbc:postgresql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM