Spring Boot特征

一.前言

在两年前已经开始关注spring boot,但是那时还停留在看文章和官方的guides阶段。对于其中给出的各种features也只是一知半解,认为是理所当然。直到后来项目中大量使用spring boot后,才对其各种特性有所清晰的认知。刚好赶上前段时间,同事离职交接,接手了他之前负责的项目,顿时让我手足无措。因为已经一年多没有使用过传统的web工程,对于其在idea中的配置,都不是很清晰了。导致这个的主要原因,并不是我忘记了怎么配置idea的传统web工程,而是在不断迭代idea的更新时,已经将web server的插件已经去掉了,导致刚上手无法配置tomcat启动项目吧。还有另外一个原因也是同事遗留下的大坑,他之前使用的是jetty,而我在成功配置tomcat server后,在idea其中却无法启动项目,原来是他一开始创建工程时,未将web工程配置好,导致idea无法找到web project descriptor和lib的引用。经过慢慢摸索,最终虽然顺利配置和启动项目。但是又陷入另一个棘手的麻烦中。

由于非spring boot的spring web传统项目,导致有大量的配置。无论是spring bean的xml配置,还是spring注解式配置,再加上混乱的maven pom dependency管理,让我深深感受到这个项目简直是无药可救。

在经历过这次事件后,spring boot更是深的我喜爱和推崇。无论是它的快速开发和快速启动都是一绝。

二.Features总结

  • spring boot对嵌入式容器的支持,使得应用只需要编写一行代码就可以启动web容器,而无需要再遵循复杂的传统web工程的要求和配置。对于应用的敏捷开发和微服务的流行起到了重大作用
  • fat jar即指,可以使用spring提供的maven plugin,对spring boot工程进行package,生成的jar可以直接启动部署,对于运维交付极其方便
  • 模块化的starter pom,是将一组maven的依赖聚合在一个命名为starter的pom文件中。只要通过依赖相应的starter pom,便可以将某一方面的依赖全部传递进工程,从而减少配置复杂的maven依赖,同时通过集中式的maven依赖管理,也可以减少jar冲突和兼容性问题
  • 自动化配置,可谓是spring boot中的神器。通过提供一系列的自动配置的pom,项目可以这些pom,从而减少甚至避免使用xml再配置spring,spring一直依赖被诟病的就是配置繁杂。spring boot成功的解决了这个痛点
  • 外化配置,是指可以通过在启动fat jar时通过命令行参数来改变spring boot启动后的配置。这个非常有利于多环境
  • 端点是spring boot提供的另一项神器,比如check health endpoint,提供对应用实时的指标监控,绝对是一大生产利器

三.总结

学习一项事物前,一定需要弄清楚其features,这将有利于系统的全面把握将要学习的事物。以上枚举的spring boot的几大特征都是其中最为重要和突出的功能特征,虽然还有很多其他优点,但是掌握的以点并能够应用,就已经掌握了spring boot。

posted @ 2020-03-17 16:47  怀瑾握瑜XI  阅读(483)  评论(0编辑  收藏  举报