spring initializr 默认配置为什么用 properties 而不是 yml? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dunhanson
V2EX    Java

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

  •  
  •   dunhanson 2022-12-07 19:31:25 +08:00 3075 次点击
    这是一个创建于 1042 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我看包管理都改成 Gradle 了

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

    有点无法理解

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

    几乎所有的文档, 博客都是 yml. 但是这么多年 initializer 还是 properties
    ptx
        8
    jptx  
       2022-12-07 21:01:57 +08:00   1
    翻了下,早在 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
        9
    binge921  
       2022-12-07 21:09:05 +08:00
    Spring Initializr 默认使用 properties 文件来存储配置信息,因为它更简单易读,并且容易理解。YAML 文件在复杂的配置场景下可能更方便,但它的语法要比 properties 文件复杂得多,并且不太容易阅读。因此,Spring Initializr 默认使用 properties 文件作为配置文件。
    v2e0xAdmin2
        10
    v2e0xAdmin2  
       2022-12-07 21:10:33 +08:00
    @binge921 chatGPT 吗
    leaflxh
        11
    leaflxh  
       2022-12-07 22:06:03 +08:00
    @v2e0xAdmin2 句式都一个德行,机器人的语言组织能力还是得再学习一个
    LeegoYih
        12
    LeegoYih  
       2022-12-07 23:09:05 +08:00
    yaml 配置超过一页后可读性大大下降,写 OpenAPI 的时候很难受
    dunhanson
        13
    dunhanson  
    OP
       2022-12-08 08:42:29 +08:00
    @wzcloud @jptx @binge921 k8s 的配置文件都是 yml 或者 json
    nothingistrue
        14
    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
        15
    wzcloud  
       2022-12-08 10:31:27 +08:00
    @dunhanson 都说了历史包袱。。。你自己了解一下 JAVA 什么时候出来的,spring 什么时候出来的,kubernetes 又是什么时候出来的
    threeroseing0
        16
    threeroseing0  
       2022-12-08 11:16:56 +08:00
    为什么都觉得 yml 好
    在 Spel 表达式搜索的时候真感觉还是 properties 方便啊
    goalidea
        17
    goalidea  
       2022-12-10 12:41:16 +08:00
    说明你只是参与开发,用 properties 为了给部署人员方便,运维人员主要是对配置文件复制粘贴,yaml 复制粘贴出错,而且不容易排错,所以一般上线给运维都是改成 properties
    chachae
        18
    chachae  
       2023-03-19 10:52:33 +08:00 via iPhone
    yml 纯属是被 k8s 带火的,实际上可读性不如 properties ,而且出问题不容易排查,譬如重复 key ,格式错误等等的问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5350 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:26 PVG 16:26 LAX 01:26 JFK 04:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86