当前位置: 首页 > 知识库问答 >
问题:

从Spring Boot 2.3到2.4迁移过程中的配置文件排序

纪俊良
2023-03-14

在我的应用程序中,我有一些配置文件:

  • default(application-default.yml):应用程序的默认值。有很多默认值,目标是不使文件application.yml复杂化,所以拥有这个文件非常重要
  • 质量(application-quality.yml):质量配置文件
  • 环境配置文件(例如application-dev.yml):当前环境的配置文件。它必须重写application.yml和application-default.yml值
  • 环境的数据库配置文件(例如application-databasedev.yml):当前环境的数据库连接配置文件

在Spring Boot2.3中,配置为:

spring:
  profiles:
    include:
      - default
  redis:
    jedis:
      pool:
        max-active: 4
spring:
  profiles:
    include:
      - quality
myApplication:
  vcs:
    url: https://default.url 
  cache:
    enabled: true 

应用程序-dev.yml

spring:
  profiles:
    include:
      - databaseDev
myApplication:
  cache:
    enabled: false 

我正在使用参数--spring.profiles.active=dev启动应用程序

在这种情况下,下面是活动配置文件的顺序以下配置文件是活动的:default、quality、Dev、databasedev

这是我想要的秩序。对于键MyApplication.cache.Enabled的示例值为false

我阅读了迁移到Spring Boot2.4的文档,因此我现在的配置是:

application.yml

spring:
  profiles:
    group:
      "Dev": "default, quality, databaseDev"
  redis:
    jedis:
      pool:
        max-active: 4
myApplication:
  vcs:
    url: https://default.url 
  cache:
    enabled: true 
myApplication:
  cache:
    enabled: false 

但现在我有了活动配置文件以下配置文件是活动的:Dev、default、quality、databasedev

在本例中,键MyApplication.cache.Enabled的值为true

现在profile Dev不覆盖默认profile为2.3,相反,默认profile覆盖Dev profile。

是否有一种方法可以修改配置使其与2.3一样工作(而不使用use-legacy-processing:true)?我是不是哪里出错了?

共有1个答案

国言
2023-03-14

我找到了一个可行的解决方案:将配置文件dev重命名为dev并创建一个名为dev的组

结果如下:

application.yml

spring:
  config:
    import: classpath:application-groups.yml 
  redis:
    jedis:
      pool:
        max-active: 4
spring:
  profiles:
    group:
      "base": "default, quality"
      "Dev": "base, databaseDev"
myApplication:
  vcs:
    url: https://default.url 
  cache:
    enabled: true 

应用程序-dev.yml

myApplication:
  cache:
    enabled: false 

从参数--spring.profiles.active=Dev开始,以下配置文件是活动的:Dev、base、default、quality和databasedev

你觉得这个解决方案怎么样?

 类似资料:
  • 我有一个使用log4j的java应用程序,配置如下。 log4j.properties 我想使用与上面相同的配置迁移到log4j2。尚未找到任何与log4j2属性配置文件相关的内容,因为最近包含了此支持。 谁能帮我弄清楚我的log4j2怎么样。属性文件是否具有上述相同的配置?

  • 我正在进行迁移,这个特殊的库在中显示错误,而在中没有错误

  • 我已经迁移了所有内容并将应用程序部署到新服务器。当我尝试运行它时,我得到以下异常: 尝试使用提供程序URL获取初始上下文时发生通信故障:“corbaloc:iiop:127.0.0.1:2809”。确保URL中的任何引导地址信息正确,并且目标名称服务器正在运行。没有端口规范的引导地址默认为端口2809。除了不正确的引导地址或名称服务器不可用之外,可能的原因包括网络环境和工作站网络配置。 现在,在完

  • 如何在中添加以下字段。log4j2的属性配置文件? log4j。阿佩德。最高可用性构架。MaxFileSize=50MB log4j。阿佩德。最高可用性构架。MaxBackupIndex=100

  • 问题内容: 我正在从elasticsearch1.4.3迁移到2.4,并替换了elasticsearch文档中引用的一段代码,而其他参考则需要替换andFilter? 码:- 问题答案: 您可以这样做:

  • 我在雪花上做POC,探索这个产品。 我有一个问题:在SQL Server中,我们有400-500个存储过程,这些存储过程是从SSRS报告调用的。这些存储过程本质上很简单,如下所示: