【玩转SpringBoot】配置文件yml的正确打开姿势

序言


在很久以前,Spring的配置文件是基于XML的。它的名字就是applicationContext.xml,没错,就只有这一个xml文件。

它里面配置了所有的东西。但是数据库信息通常会单独拿出来,放入一个properties文件,通常叫db.properties。

后来觉着一个xml里的东西实在太多了,就按功能拆分成几个独立的xml。

spring-dao.xml是dao层,spring-service.xml是service层,spring-tx.xml是事务相关,dispatcher-servlet.xml是web相关。

这么多的xml怎么办呢?很简单,就是在applicationContext.xml里都引用它们即可。

随着JDK在1.5加入了对注解的支持,Spring也慢慢的向注解转化。直至后来一个xml都不剩,全部变为注解,连web.xml都没有了。

是xml不行了,还是注解太牛X了,其实它们是等价的,连官网上都说它们一摸一样,故而不做推荐,让用户根据实际情况自己选择。

不过,最终历史还是抛弃了XML,肯定是多方面的原因,可能如下:

1)人们厌倦了XML,出现审美疲劳

2)试用了注解很爽,一发不可收拾

3)注解代表着先进的生产力,极大提升了效率

4)XML拖沓累赘,注解清爽干脆

5)大家都觉得使用注解比使用XML更牛B。

于是乎,一个辉煌的新时代碾压了一个曾经辉煌的曾经的新时代。

呵呵,历史是什么,就是个车轮。一切皆可碾压。

总之,既有实际实践问题,又有思想意识问题,说不清,道不明。

随着SpringBoot的横空出世,配置文件的概念又发了变化。

SpringBoot强调自动配置(也叫自动装配),所以配置对它来说很重要。

配置文件属于配置的一部分,自然也变得非常重要,于是yml就应势站了起来。

yml从未像现在这样流行,成了新时代的网红。


yml配置文件的格式


每种新事物的流行,总会有它比旧事物更好的地方。

作为Java界配置文件鼻祖,非properties文件莫属,它里面的格式就不用再举例了吧。

它是一维非结构化的,一行一个,写多了容易乱。

而yml文件是二维结构化的,有严格的缩进,结果就是层次分明,非常清晰。

而且,常用的配置都能得到支持,这就是它的优势,所以就流行起来了。

一、List配置格式,如下图01:

二、Map配置格式,如下图02:

三、List套List格式,如下图03:

四、List套Map格式,如下图04:

五、Map套Map格式,如下图05:

六、Map套List格式,如下图06:

虽然有些嵌套可能并不适用,这里只是说明yml支持这样的嵌套,如果愿意的话,嵌套层次还可以更深。


yml配置文件内容的存储


大家都知道SpringBoot是由Spring发展而来的,Spring里是有Environment这个概念的。

所有的环境变量、系统属性、配置文件内容都会放进去。

通常的配置项都是一些key=value,就和properties文件是一样的。所以Environment底层也是这样实现的。

但到了SpringBoot中,配置文件变为yml了,是二维结构化的,根本没有办法直接用key=value这种形式表示。

但是,yml配置文件的内容还必须要放入到Environment中去。那怎么办呢?看来二者必须要修改其一了。

由于Spring已经很多年了,它里面的很多概念都已经固化下来了,包括Envi

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值