记录一个容易混淆的 Spring Boot 项目配置文件问题

ops/2024/10/24 3:55:05/

记录一个容易混淆的 Spring Boot 项目配置文件问题


去年,我遇到了这样一个问题:

配置文件问题

在这个例子中,由于密码 password0 开头,当它被 Spring Boot 的 bean 读取时,前导的 0 被自动去掉了。这导致程序无法正确读取密码。为了解决这个问题,当时的方案是给密码加上一对引号,将其强制识别为字符串:

password="012345"

心中的疑虑

然而,这个问题让我心里一直有些疑虑:是不是所有的配置项都应该这样加上引号?为了避免潜在的错误,我后来在各种配置项上都这么做了。

但意外终究还是发生了。

错误截图

新问题

今天,在写 properties 配置文件时,我再次尝试使用相同的引号解决方案,但却报错了。

探索与总结

经过一番探索,我发现并不是所有配置项都适合加引号。以下是对不同情况的总结:

配置类型是否需要引号说明
字符串当内容以数字或特殊字符开头时,建议加引号
数字纯数字不需要引号,否则会被解析为字符串
布尔值truefalse 不需要引号,否则会报错
YAML 格式是/否YAML 中大部分情况下引号不是必须,但特殊字符需小心
nullnull 不应加引号,否则会被识别为字符串 "null"

http://www.ppmy.cn/ops/127998.html

相关文章

【Flutter】基础入门:自定义Widget

在 Flutter 开发中,除了使用丰富的内置 Widgets 构建界面外,自定义 Widget 是让你的应用更灵活和个性化的重要手段。Flutter 允许你根据需求自定义 StatelessWidget 和 StatefulWidget,以实现复杂的 UI 组件或功能模块。 本教程将通过实例讲…

Git Push(TODO)

最近经常碰到GIT push不上去的问题。到处求人解决也真是尴尬,想自己看看,所以刚刚在github上建了一个仓,试了下。结果如下: 暂时可能还不行,因为数据都是加密的,没法看到具体GIT的交互信息。。。 后面再想办…

CTFHUB技能树之SQL——布尔盲注

开启靶场,打开链接: 输入1: 显示查询成功但没有回显出相关信息,初步判断是布尔盲注入、时间盲注或报错注入 输入1: 还是没有回显 输入1": 还是没有回显,到这里已经可以确认是布尔盲注了&a…

深入理解 SQL 中的高级数据处理特性:约束、索引和触发器

在 SQL(Structured Query Language)中,除了基本的查询、插入、更新和删除操作外,还有一些高级的数据处理特性,它们对于确保数据的完整性、提高查询性能以及实现自动化的数据处理起着至关重要的作用。这些特性包括约束、…

redis过期提醒

文章目录 redis过期提醒 redis过期提醒 有一次看redis的配置文件发现一个notify-keyspace-events配置,注释里边长篇大论的,那我得看看这是干啥的,看完注释内容,发现不得了了,redis竟然还有过期提醒的功能 接下来得大…

elasticsearch中的向量检索,语义检索,RRF,kNN,ANN,HNSW

kNN 算法 (k-Nearest Neighbor) KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一。 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个…

【记录】Django数据库的基础操作

数据库连接 在Django中使用 mysqlclient 这个包用于数据库的连接,切换至 Django环境中直接 pip install mysqlclient 安装此包 1 数据库连接配置 在项目目录下的setting.py中配置 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: mini,#数据库名US…

mqtt客户端订阅一直重复连接?

文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案,感兴…