spring initializr 默认配置为什么用 properties 而不是 yml?

2022-12-07 19:31:25 +08:00
 dunhanson

我看包管理都改成 Gradle 了

配置文件管理这种,yml 不是更新,更灵活吗?

有点无法理解

2548 次点击
所在节点    Java
18 条回复
jeesk
2022-12-07 19:45:14 +08:00
这个 initializer 可以选择?
dunhanson
2022-12-07 19:46:43 +08:00
@jeesk 没看到有
dcsuibian
2022-12-07 19:47:46 +08:00
.properties 历史比较久吧
我一般初始化后第一件事就是把 application.properties 重命名成 application.yml
dunhanson
2022-12-07 19:53:46 +08:00
@dcsuibian 我是在想 spring 是不是有什么考虑?这个考虑点我们不清楚
wzcloud
2022-12-07 20:15:47 +08:00
历史包袱呗,还能因为啥,java 官方支持的配置格式就是 properties
git00ll
2022-12-07 20:16:39 +08:00
虽然 yml 更灵活,但也更显得乱
me221
2022-12-07 20:22:57 +08:00
我也好奇.

几乎所有的文档, 博客都是 yml. 但是这么多年 initializer 还是 properties
jptx
2022-12-07 21:01:57 +08:00
翻了下,早在 2015 年就有人提了这个问题,想把配置文件默认格式改为 yml 。也有人建议增加一个选项,用来控制配置文件是.properties 格式还是.yml 格式。但是 Snicoll ( Spring 官方核心研发)说暂时不打算切换,因为 IDE 对 yml 格式的支持没达到很强的水平,相比 properties 格式的支持根本不在同一个级别上。直到 2018 年又有人提了这件事,Snicoll 还是觉得 IDE 目前对 yml 支持的不太好,不愿意切换。

相关讨论 Issue:
https://github.com/spring-io/initializr/issues/94
https://github.com/spring-io/initializr/issues/614
binge921
2022-12-07 21:09:05 +08:00
Spring Initializr 默认使用 properties 文件来存储配置信息,因为它更简单易读,并且容易理解。YAML 文件在复杂的配置场景下可能更方便,但它的语法要比 properties 文件复杂得多,并且不太容易阅读。因此,Spring Initializr 默认使用 properties 文件作为配置文件。
v2e0xAdmin2
2022-12-07 21:10:33 +08:00
@binge921 chatGPT 吗😂
leaflxh
2022-12-07 22:06:03 +08:00
@v2e0xAdmin2 句式都一个德行,机器人的语言组织能力还是得再学习一个
LeegoYih
2022-12-07 23:09:05 +08:00
yaml 配置超过一页后可读性大大下降,写 OpenAPI 的时候很难受
dunhanson
2022-12-08 08:42:29 +08:00
@wzcloud @jptx @binge921 k8s 的配置文件都是 yml 或者 json
nothingistrue
2022-12-08 09:23:46 +08:00
Spring Boot 的配置文件,不是 properties 或 yml ,而是 properties 和 “yml 自动映射 properties”。而整套配置体系,是 properties 和 “yml 、环境变量、JVM 参数等等自动映射 properties”。如果你往细节追踪,你会发现里面有好多东西仅面向 properties 。所以除非到了不得不用 yml 的情况,它的默认配置文件只能是 properties 。

你要深入看下 Spring 的文章,你就会知道,包管理改 Gradle ,原因只是 Maven 性能跟不上了不得不用 Gradle 。
wzcloud
2022-12-08 10:31:27 +08:00
@dunhanson 都说了历史包袱。。。你自己了解一下 JAVA 什么时候出来的,spring 什么时候出来的,kubernetes 又是什么时候出来的
threeroseing0
2022-12-08 11:16:56 +08:00
为什么都觉得 yml 好
在 Spel 表达式搜索的时候真感觉还是 properties 方便啊😂
goalidea
2022-12-10 12:41:16 +08:00
说明你只是参与开发,用 properties 为了给部署人员方便,运维人员主要是对配置文件复制粘贴,yaml 复制粘贴出错,而且不容易排错,所以一般上线给运维都是改成 properties
chachae
2023-03-19 10:52:33 +08:00
yml 纯属是被 k8s 带火的,实际上可读性不如 properties ,而且出问题不容易排查,譬如重复 key ,格式错误等等的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/900871

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX