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

Spring Profile包含带有yaml文件问题

养淇
2023-03-14

我试图在团队将websphere配置文件设置为活动状态时实现云配置文件也被激活。

yaml文件

   ---
    spring:
      application:
        name: kicapp
      output:
        ansi:
          enabled: ALWAYS
      profiles:
        active: local
    #server:
      #context-path: /
      #port: 8080
    #logging:
      #level:
        #org.springframework.security: DEBUG
    ---
    spring:
      profiles: local
    ---
    spring:
      profiles: unittest
    ---
    spring:
      profiles: cloud
      test: loaded
    ---
    spring:
      profiles: websphere
        include: cloud

当我设置--spring.profiles.active=websphere时,我收到以下错误

共有1个答案

常海
2023-03-14

这似乎是snakeyaml解析器和Spring Boot使用它的方式的一个限制。由于yaml允许在一个文件中使用--分隔符指定多个不同的文档,因此Spring通过Spring.profiles键来分隔单独的文档,不幸的是,这个键应该是一个简单的结构,而不是一个复杂的结构。

一个很好的解决办法实际上是通过以下方式将其拆分为多个文件:

具有公共内容的application.yaml,具有配置文件特定扩展的application- ,使用此结构后,键spring.profiles.include将按预期工作。

 类似资料:
  • SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法。ASP 只使用这一机制的 #include 指令。要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称。 被包

  • 文件包含 可以使用source和.关键字,如: source ./function.sh . ./function.sh 在bash里,source和.是等效的,他们都是读入function.sh的内容并执行其内容(类似PHP里的include),为了更好的可移植性,推荐使用第二种写法。 包含一个文件和执行一个文件一样,也要写这个文件的路径,不能光写文件名,比如上述例子中: . ./functio

  • include 标签是模板开发中最最常用的标签之一,它可以在模板中包含其它模板的内容;用法如下: <include file='模版1,模版2,...' /> 请不要在include 的模板文件中使用模板布局或者模板继承 file 属性的定义规则: 以前台simlpeboot3主题为例: 控制器/操作 <include file="public/header" /> <!-- 以上表示包含当前

  • tc_include tc_include是前台模板包含文件的方法,用于替换原来的include的标签,实现更多功能 用法: <tc_include file="Public:nav"/> <!--加载的是当前模板的Public/nav.html--> <tc_include file="Public/nav"/> <!--加载的是当前模板的Public/nav.html--> <tc_inclu

  • include 标签是模板开发中最最常用的标签之一,它可以在模板中包含其它模板的内容;用法如下: <include file='模版1,模版2,...' /> 请不要在include 的模板文件中使用模板布局或者模板继承 file 属性的定义规则: 以前台simlpeboot3主题为例: 控制器/操作 <include file="public/header" /> <!-- 以上表示包含当前

  • 在当前模版文件中包含其他的模版文件使用include标签,标签用法: {include file='模版文件1,模版文件2,...' /} 包含的模板文件中不能再使用模板布局或者模板继承。 使用模版表达式 模版表达式的定义规则为:模块@控制器/操作 例如: {include file="public/header" /} // 包含头部模版header {include file="public/