yaml语法问题, <<: 无法引用另一文件中的内容

JoeBlackzqq JoeBlackzqq 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
基于springboot的项目, 有两个配置文件:
application-local.yaml中有如下内容:

test: &test
name: joe
hello: 你好吗
age: 23


另一个文件application.yaml中想引用这个内容:

myserver:
test:
<<: *test


这样使用发现程序无法启动, 报错如下:

21:33:48.943 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: unknown
21:33:49.019 [background-preinit] DEBUG org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator - Loaded expression factory via original TCCL
21:33:49.023 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator.
21:33:49.024 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.resolver.TraverseAllTraversableResolver as ValidatorFactory-scoped traversable resolver.
21:33:49.024 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider.
21:33:49.024 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider.
21:33:49.024 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory.
21:33:49.337 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yaml'
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:556)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadForFileExtension(ConfigFileApplicationListener.java:502)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:469)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$null$6(ConfigFileApplicationListener.java:450)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.lambda$load$7(ConfigFileApplicationListener.java:449)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:446)
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:334)
at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:209)
at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:192)
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:179)
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
at com.zcm.mybatis.MybatisApplication.main(MybatisApplication.java:14)
Caused by: org.yaml.snakeyaml.composer.ComposerException: found undefined alias test
in 'reader', line 40, column 9:
<<: *test
^


我想根本原因应该是这个引用的内容在另一文件的原因! 难道引用的内容只能在同一个文件才可以吗?
...全文

相关推荐

最全 Yaml 语法详解

最全 Yaml 语法详解简单说明基本语法Yaml 支持的数据结构对象类型:对象的一组键值对,使用冒号结构表示数组类型:一组连词线开头的行,构成一个数组复合结构:对象和数组可以结合使用,形成复合结构纯量:纯量是最基本的、不可再分的值引用参考 简单说明 Yaml 是一个可读性高,用来表达数据序列的格式。Yaml 的意思是:仍是一种标记语言,强调这种语言以数据做为中心,而不是以标记语言为重点 基本语法 缩进时不允许使用 Tab 键,只允许使用空格 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 标识注释,从这个字符一直到行尾,都会被解释器忽略 Yaml 支持的数据结构 对象:键值对的集合,又称

weixin_38542148

在Qt中使用yaml-cpp库对yml文件进行读写

这是一个用Qt实现的利用yaml-cpp库对yml文件进行读写的小demo,内含所需要的库文件和头文件以及测试文件

请在beep声后留言

Python读取YAML文件过程详解

主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

weixin_38732811

Python自动化测试中yaml文件读取操作

主要介绍了Python自动化测试中yaml文件读取操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38729685

vim-yaml:覆盖Yaml文件的vim语法

维姆·雅姆(Vim Yaml) 来自语法文件 由于核心yaml语法,vim 7.4中的Yaml文件确实很慢。 此语法更简单/更快。 g:yaml_limit_spell 设置为1可将拼写检查(如果启用了拼写检查)限制为Yaml注释和字符串。

DeepIndaba
评论
收藏 已收藏
分享
返回顶部
JoeBlackzqq
Java SE 62,620 成员 307,251 内容