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

Yml配置文件“继承”与Spring启动

寿意远
2023-03-14

我在网上找不到直接的答案。

Spring Boot的yml文件是否相互“继承”?我的意思是如果我有:application.yml

server:
  port: 80
  host: foo

application-profile1。yml只有

server:
  port: 90

因此,如果我以profile1作为活动配置文件启动Spring Boot,我还将拥有服务器。主机属性设置为foo

共有2个答案

黄元章
2023-03-14

这是我的解决办法。

假设应用程序。yml

spring:
  profiles: default-server-config

server:
  port: 9801
  servlet:
    context-path: '/ctp'

如果我想使用默认服务器配置配置文件,并在我的application-dev.yml中使用端口8080

application-dev.yml

spring:
  profiles:
    include:
      - default-server-config
      - dev-config

---
spring:
  profiles: dev-config
  
server:
  port: 8080

然后-Dspring。简介。活动=开发

锺星洲
2023-03-14

是,应用程序。yml文件的优先级高于任何应用程序-{profile}。yml文件。配置文件特定yml文件中的属性将覆盖默认应用程序中的值。yml文件和配置文件特定yml文件中不存在的属性将从默认文件加载。它适用于。属性文件以及到引导。yml引导。属性

Spring Boot文档在72.7中提到它,根据环境更改配置段落:

在本例中,默认端口为9000,但如果Spring配置文件“开发”处于活动状态,则端口为9001,如果“生产”处于活动状态,则端口为0。

YAML文档按遇到的顺序合并(因此后面的值会覆盖前面的值)。

要对属性文件执行相同的操作,可以使用application-${profile}。属性来指定特定于配置文件的值。

 类似资料:
  • 问题内容: 我在网上找不到直接的答案。 Spring Boot的yml文件是否彼此“继承”?我的意思是如果我有: 其中有 而且只有 因此,如果我以活动配置文件启动Spring Boot ,是否还将属性设置为? 问题答案: 是的,文件的优先级高于任何文件。特定于配置文件的yml文件中的属性将覆盖默认文件中的值,特定于配置文件的yml文件中不存在的属性将从默认文件中加载。它适用于文件以及或。 Spri

  • 我有这个配置文件: 当我尝试检查数据时,它无论如何都连接到“jdbc: h2: mem: testdb”: 为什么Spring启动找不到正确的数据库配置?

  • 问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方

  • 我在Spring Boot中的资源类路径位置中有多个yml文件,就像下面的Spring Boot结构一样。起初,我只为abc的申请而写。当时,这个文件的所有值都加载到了相应的类中,但是当我添加到另一个文件应用程序xyz时。然后,yml也会加载到相应的配置类中,但此时只加载应用程序xyz的值。两个配置类中的yml。因此,需要帮助在单个构建中配置相应配置文件中两个文件的值: 申请内容abc。yml a

  • 我不想使用命令行覆盖现有的YML文件配置文件,所以我这样做了。 null