Spring Boot到底是什么
在了解Spring Boot之前应该先了解下Spring,因为Spring Boot的核心是基于Spring构建的。Spring是由Rod Johnson在2002年创建的一个开源框架,Spring在创建到现在一直处于飞速发展之中。目前已经成为J2EE开发中的事实标准。但是随着IT技术的飞速发展,及IT项目变得越来越复杂。如果学习过Spring就知道Spring非常依赖xml文件进行配置,有时一个项目就有几十个xml配置文件,这些繁琐的配置、以及Spring整合第三方框架的配置问题。经常导致开发效率低下,一不小心就出现丢三拉四;有时一不留神就导致发版失败,给公司造成经济损失。
Spring Boot是由Pivotal团队打造的,并在2014年发布的一个全新框架,其设计目标就是用来简化Spring应用的搭建、开发及部署。Spring Boot采用了特定的方式进行配置,从而达到使开发人员不在需要配置繁琐的xml文件。简单的说其实Spring Boot并不是什么新的框架,就是摒弃了xml的配置方式,使用了一种新的配置方式;然后在maven中使用starter的方式整合了很多第三方框架,同时提供了很多默认的配置参数。
Spring Boot官网有如【图1】一段话:
【图1】
这段话这段话跟我上面的解释大同小异。
Spring Boot为啥不学不行
Spring Boot在短短四年就已经由1.0发展到2.0了;而且就这短短四年就已经红遍神州大地。无论小公司,还是大企业,都在使用。
1、Spring Boot能干啥
打开Spring官网(https://spring.io/ ),映入我们眼帘的是如下一张图【图2】:
【图2】
看图中框住的那块知道,Spring官方对Spring Boot的定位是Build Anything,意思就是Spring Boot可以构建任何东西。Spring Boot旨在快速、高效,使用最少的配置构建Java应用。学完了Spring Boot,还有更高级的Spring Cloud和Spring Cloud Data Flow。
Spring Cloud的定位是Coordinate Anything (协调任何东西)
Spring Cloud Data Flow的定位是Connect Everything (连接任何东西)
仔细斟酌一下Spring Cloud和Spring Cloud Data Flow,发现Cloud和Data 都跟现在最火的技术关联在一起,Cloud对应云,Data对应数据。而Spring Cloud和Spring Cloud Data Flow有基于Spring Boot,所以Spring Boot必须先学。
2、企业招聘对Spring Boot的要求及Spring Boot的百度搜索指数
打开国内比较知名的招聘网站,例如在猎聘网搜索一下,可以发现很多Java相关的职位都对Spring Boot技术有所要求。如下【图3】这个Oralce公司的招聘职位,在招聘的职位描述里就对Spring Boot有要求。
【图3】
Spring Boot嫣然已经成为Java程序员打怪升级的必备技能。就不说Spring Boot有多重要了。
再看下Spring Boot的这个关键字的百度搜索指数(http://index.baidu.com),Spring Boot从2014年推出到现在,Spring Boot在百度的搜索指数一直处于稳步增长的状态中【图4】。说明程序员或者公司对Spring Boot关注度非常高。
【图4】
3、Spring Boot的好处
使用了Spring Boot后,能给开发人员带来哪些好处?能给运维人员带来哪些方便?甚至说能给公司带来哪些经济效益?看图【图5】说话:
【图5】
1.基于Spring
Spring Boot基于Spring,所以Spring有的优点Spring Boot也有,不需要开发人员去学习一个全新的框架,学习门槛相对降低。
2.快速编码
Spring Boot的依赖包都是基于maven的pom文件提供的,而Spring Boot本身就集成了特别多的第三方框架。以前开发Spring应用时,需要用到的第三方框架的库都需要开发人员一个一个去寻找;现在不需要了,有些可能只需引入一个pom.xml,就能把大量需要用到的第三方库自动引入到项目中。所以减少了开发工作量,实现快速编码。
3.模块化
基于Spring Boot开发的项目可以非常简单的实现模块化编程,这样的话可以非常有效的实现项目的分工合作,减少开发过程中的代码冲突。模块化编程还可以非常高效的实现减少代码的改动量,按需修改模块,降低生产发生事故概率。
4.配置简单
在文章开头就说了Spring Boot摈弃了繁琐的xml配置文件,大量的配置文件经常是导致生产事故的原因。Spring Boot大量采用yml形式的配置文件再加上相应的Annotation,从而大大减少了配置文件的个数,因为以前的Spring应用引入一个第三方框架说不定就要添加一个配置文件。举个例子,比如项目中要引入数据库连接池HikariCP,就需要添加一个关于HikariCP数据库连接池的配置文件,但是使用了Spring Boot采用HikariCP可能就只需要那么几行配置就可以了,因为Spring Boot默认集成HikariCP数据库连接池,提供了很多默认的配置。
5.便捷部署
Spring Boot天生就是为了简单、快捷部署而生。SpringBoot内嵌了Tomcat,不需要额外部署应用服务器Tomcat,只需简单一个Java运行环境即可,而且启动的命令也非常简单:java –jar xxx-release.jar。同时Spring Boot结合现在非常火的技术 Docker、Kubernetes可以快速实现集群部署。
6.有效监控
Spring Boot集成了非常高效的监控框架,只要简单引入对spring-boot-start-actuator的依赖,就可以实现对服务性能的监控。结合Spring Cloud就可以实现对整个微服务链路的全天候监控。