写下本文的初衷,是记录我对SpringBoot的一些理解
SpringBoot是一个基于Spring Framework的快速开发框架,SpringBoot可以简化Spring应用的搭建过程、开发过程,提高开发人员的开发效率。
在我看来,一个技术能不能大规模的运用,有以下几个因素。
可以说,SpringBoot完全符合上述的要求,原因如下。
在SpringBoot推出之前,开发者通过maven搭建一个Spring应用,需要知道依赖的版本,需要知道组件相关的依赖有哪些,需要写xml或者配置类,来声明使用的bean。依赖和依赖之间的版本一旦发生冲突,对开发者来说就头疼了。大量的xml配置文件和配置类,对于新手来说学习成本大了,对老手来说耗费时间。也就是说,SpringBoot确实解决了痛点问题。
SpringBoot有2个潜规则,是约定大于配置、开箱即用。其实这也是Spring Framework的特点,只是SpringBoot更进一步。
我举个例子说明什么是开箱即用。假如我们需要使用redis,只需要在pom文件引入redis-starter的依赖,不需要关心redis-spring的版本,不需要配置redis组件使用的bean,就能直接用RedisTemplate操作redis数据库了。当然了,redis的url、port等信息还是要写的,毕竟代码不是神仙,算不出来redis实例部署在哪里。
再举个例子说明什么是约定大于配置。当我们自定义一个starter时,springboot会自动扫描某个路径下的某个文件(这个以后会详细说),会把starter中声明的bean,自动加入到Spring容器里,这也是上面那个例子中,为什么项目里没有声明RedisTemplate,但是Spring容器里却有RedisTemplate这个bean的原因,因为boot帮我们自动装配了。
因此可以得出结论,SpringBoot功能很强,用起来也更省事。
SpringBoot是基于Spring Framework之上的一个新框架,并没有脱离Spring的生态,也没有造新的轮子。还是会用到IOC、AOP、事务、MVC等概念。因此使用Boot并不意味着旧的就过时了。这说明引入SpringBoot的成本较低。
SpringBoot背靠Spring生态,又有Spring社区作为背书,再加上spring cloud是基于springboot的,无论是背景还是前景,都很强。