yaml语法问题, <<: 无法引用另一文件中的内容
基于springboot的项目, 有两个配置文件:
application-local.yaml中有如下内容:
另一个文件application.yaml中想引用这个内容:
这样使用发现程序无法启动, 报错如下:
我想根本原因应该是这个引用的内容在另一文件的原因! 难道引用的内容只能在同一个文件才可以吗?
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 语法详解
### 基本语法1. **缩进规则**:YAML 文件中的缩进非常重要,用于表示数据的层次结构。值得注意的是,YAML 不允许使用 Tab 键进行缩进,只能使用空格。
在Qt中使用yaml-cpp库对yml文件进行读写
(&file); stream << out.c_str(); file.close(); }}```在这个例子中,`readYaml`函数使用`YAML::LoadFile`加载YAML文件内容到一个
Python读取YAML文件过程详解
可以通过pip命令进行安装:```bashpip install pyyaml```安装完成后,就可以开始使用Python读取YAML文件了。1. YAML语法简介: YAML的语法简洁且直观。
Python自动化测试中yaml文件读取操作
yaml文件的基本语法规则如下:1. **大小写敏感**:yaml文件中的关键字和标识符都是大小写敏感的。2.
vim-yaml:覆盖Yaml文件的vim语法
维姆·雅姆(Vim Yaml) 来自语法文件由于核心yaml语法,vim 7.4中的Yaml文件确实很慢。 此语法更简单/更快。g:yaml_limit_spell 设置为1可将拼写检查(如果启用了拼


Java SE
