application.properties文件和application.yml文件有什么区别?

蘇小傻


熟悉springboot的朋友都知道,原本的JAVA项目中常用的application.properties配置文件可以使用yml文件取代,两者的作用其实是一样的,都是用来配置全局性的,基本不变的属性的数据格式序列化,用于在项目初始化的时候加载进容器,在程序中使用。



两者的区别就像米饭和面条,都可以用来填饱肚子,两者显示不同,语法不同,作用相同。

至于为什么要使用yaml文件,应该是这样的。。。

①,yml配置是树状的数据格式:看起来更加的直观。

②,yml是跨语言的:可以在包括JAVA,go,python等大量的语言中使用,比如做云计算使用go和java的时候,可以通过配置中心使用同一份配置!

③,支持列表:区别于properties只支持键值对数据,yml配置文件支持列表,如下所示:

当然,从properties转yml文件会遇到很多坑,在此记录下:

1,层级关系缩进不能用tab键:每次都数2.4.6这样打空格。。。

2,每个key的后面需要加:,每个:后面还需要加一个空格!

3,列表的短横线后面需要有个空格。

不知道为什么springboot推荐使用yml,反正除了不用的列表功能没看到有啥好的,相反properties转yml的时候还遇到一些坑,不过掌握了之后就很easy了,

关于这种小细节的东西,更有很多分享,敬请关注。。。


谢逅架构


两个关键点:

第一个是yml是支持中文内容的,properties想使用中文只能用unicode编码

第二个是顺序问题,properties是不保证加载顺序的,yml有先后顺序,实际用例比如springcloud的zuul网关路由配置,如果一个uri同时满足两个匹配规则,properties你是不知道它到底使用了哪个规则的,而yml则一定是使用了靠前的那个路由规则


hellokittyqwe


问这个问题的人应该是刚刚接触到yaml文件格式,其实没本质的区别,都是配置文件的形式,相对于传统的properties,它具有更好的阅读辩识,简洁的风格,也支持utf-8编码。缺点就是格式要求严谨,出问题不太好排查,不过还是建议用用yaml风格的配置文件


分享到:


相關文章: