yaml文件中@占位符的问题

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

yaml文件中@占位符的问题

问题:

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 6, column 16:
          profile: @spring.profiles.active@

配置了多环境,但是却不识别@

解决方法:

开发工具为idea

选项 run-edit configurations-spring boot-configurations-before launch:build,Activate tool windows-±run Maven Goal-输入pakage,完成应用就可以了
第一步
 run-edit configurations
第二步
在这里插入图片描述
第三步
在这里插入图片描述
第四步
在这里插入图片描述

第五步
在这里插入图片描述
第六步
点击完成

原因:应该是运行之前先用maven进行打包处理,这样,环境配置就可以先进行路径的替换,然后Spring在运行的时候就可以不处理占位符直接获取配置文件处理。

SpringBoot获取YAML配置文件中的属性值(一):使用@Value注解、@ConfigurationProperties注解 SpringBoot支持使用Properties和YAML两种配置方式。两者功能类似,都能完成SpringBoot的配置,但是Properties的优先级要高于YAMLYAML语言的文件以“.yml”为后缀)。 使用application.yml文件配置SpringBoot项目。主要对SpringBoot项目的端口号、超时时间、参数值等进行配置。YAML文件的好处是——它采用的是树形结构,一目了然。如下: 阅读详情

相关推荐

关于nacos的yml配置文件解析@开头的值启动报错

最近公司在将consul的配置迁移到nacos上时,在项目启动时出现了这么一个问题,while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation)项目在编译阶段,将@project.version@的值替换成真正的版本号了,但是nacos在解析时,snakeymal-1.25.jar包在代码层面禁止以@开头的值。

weixin_42256938的博客 1129

YAML文件中的@

YAML文件中的@

wsdhla的专栏 5706

SpringBoot yaml配置文件

比如我的yml中写的lastName,我们类中属性为last_name,这2个还是可以绑定起来的,不影响赋值。这就是松散绑定。配置文件yml还是properties他们都能获取到值;如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

m0_74825093的博客 863

YAML知识】YAML 简介及语法,绝对干货

本文详细的介绍了YAML的特点、规范、语法等,绝对干货满满。

小青龍 的博客 5万+

SpringBoot 配置文件yaml配置文件各种数据类型使用姿势(含@EnableConfigurationProperties、@ConfigurationProperties)

spring boot 配置文件

bluemysky的博客 2167

springboot 配置多环境使用yml配置 @profileActive@ 启动报错Do not use @ for indentation

yml配置文件中添加了下面配置 spring: profiles: active: @profileActive@ 启动会报错:@profileActive@ 启动报错Do not use @ for indentation 解决办法: 一、需要在pom文件中添加以下代码 <plugin> <groupId>org.apache....

fengxing_2的专栏 1万+

org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character ‘@

Application run failed org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation) in 'reader', line 58, column 13: active: @profiles.active@

qq_41369135的博客 5591

spring项目启动报异常:active: @profiles.active@。。。

刷新一下maven,或者清除idea缓存后重启一下再试试。

CSDN_C_66的博客 467

解决Spring Boot启动时YAML配置占位符导致的ScannerException(yml占位符动态替换)

在Spring Boot项目中,YAML配置文件常使用占位符(如)实现动态配置。然而,若未正确配置Maven资源过滤机制,占位符可能未被替换,导致。5.1 核心知识点回顾Maven资源过滤:通过配置动态替换占位符YAML语法规范:避免使用符号,严格遵循缩进与格式。环境配置管理:通过<profiles>实现多环境属性切换。5.2 知识点延伸进阶配置使用<excludes>排除特定文件。通过<filter>指定额外的过滤属性文件。工具辅助使用IDEA的Maven插件实时检查资源过滤配置。

小李同学的博客 2872

YAML文件详解

YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),听着挺绕口,但其实他是以数据作为中心的一种语。 ​ yaml文件是SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的,是用于修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了。作用与properties文件

qq_44211323的博客 1万+

YAML文件

Springboot项目中YAML文件的常识

qq_48788523的博客 5461

[springboot一本通]-3.2.详解YAML语法及占位符语法

YAMLYAML Ain’t markup language的缩写,表明其不是一种标记语言(xml、html是标记语言)。它是一种数据序列化语言,通过一定的格式表示数据结构。

字母哥博客 2320

详解YAML语法及占位符语法

详解YAML语法及占位符语法

无边热爱,来日方长 1048

Springboot使用Maven占位符@替换不生效

使用@符号作为占位符,maven变量却发现不生效,进入 spring-boot-starter-parent 才发现有如下配置,也就是说springboot除了定义@符号作为占位符之外,其实还限制了其替换范围!

王坦的博客 1622
上一篇: 【Java】快速排序
下一篇: java细节的知识点-持续更新中
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值