第1节:SpringBoot开个头

# 1.为啥要学SpringBoot

这几年在Java面试的时候,Spring全家桶似乎成为了热门的香饽饽。

其中,对SpringBoot框架的连接程度,似乎成为了衡量一个Java程序猿追求技术时尚程度的风向 标。

那么,我们为啥要去学习SpringBoot框架?SpringBoot框架又是个啥?下面我们就来详细了解一 下。

①例数SSM框架整合5大罪状

想必做过SSM框架整合开发的程序猿,对SSM框架整合的复杂程度,应该是记忆犹新的。

在使用传统的SSM框架开发项目时,我们总是要面对如下一些令人头疼的问题:

1.高度模板化而又不可省略的配置文件:

在使用SSM框架整合开发项目的时候,我们一定会手动编写一大堆的配置文件。

这些配置文件的结构大多是相似的,无非就是将整合框架中的各种对象,以bean标签的方式声明 在IOC容器的配置文件当中,然后再对一些常见配置(例如SpringMVC的视图解析器的前后缀等)进行赋值。

但是就是这些高度模板化的配置文件,不仅编写起来数量众多,而且高度模板化,但是在每个项 目当中有必须重新配置一遍,写起来那是相当烦人。

2.茫茫多的jar包引用:

在还没有Maven的年代,做SSM框架整合的时候,我们通常会在lib目录下导入一大堆各种各样的 jar包,用来导入各个框架的功能。

但是这种手动导入jar包的配置方式,不仅存在各个版本jar文件之间的兼容性问题,同时像log4j日 志这种很多框架都需要的jar包,还存在重复导入的风险。

后来,Maven诞生了!Maven的存在虽然大大简化了jar文件依赖的导入方式,但是每次在进行框 架整合的时候,还是要在pom.xml文件中声明一大堆的jar文件依赖。这种时候多一个jar包依赖或者少一个jar包依 赖、某一个jar包依赖的版本有问题,都相当不好进行维护……所以面对茫茫多的jar包引用的依赖声明,程序猿们往往都是如履薄冰。

3.晦涩难懂的配置文件语法格式:

从某种意义上来说,配置文件就是一种强制的语法约束。

在编写一个配置文件的时候,我们只能够按照配置文件中给定的节点定义方式对配置文件进行编 写,一旦出现配置文件约束中没有的节点或者属性,亦或是节点的定义顺序不符合配置文件要求,整 个项目立即报错!

在这个“约定优于配置”编程思想风起云涌的时代里,类似于XML配置文件格式的项目配置方式,真 的显得有些过时。

4.依赖于外部的Web容器:

当一个SSM项目开发完成后,我们通常会将项目打成war包,然后倒入一个Tomcat或者Jetty服务 器当中。

我们将注入Tomcat或者Jetty这样的服务器,统称为Web容器。Web容器虽然为Web项目的运行和 生命周期管理提供了环境,但是每次项目部署都依赖于第三方Web容器的做法,使得项目运行维护的成本相当高昂。 因为,在每一个服务器节点上进行项目部署的时候,我们必须保证其搭载的Web容器的配置是相 同的,这就等同于我们在操心项目本身之外,还要操心服务器的配置问题。尤其是Tomcat在运行SSM框 架整合项目时,那令人尴尬的启动时间, 更是让不少程序猿为之崩溃……

5.单体项目开发的原罪:

我们将通过诸如SSM、SSH框架整合进行开发的项目,称之为单体项目。针对单体项目的开发方 式,我们称之为单体式开发

在单体项目当中,我们会一股脑将所有功能模块的Java代码、静态页面、配置文件等内容打包到 同一个war包当中,然后在同一个Web容器上进行部署和运行。

但是事实证明,这种单体式开发的项目,往往在功能权衡上是有缺陷的。

例如一个电商网站,交给用户进行操作的客户端部分,可能会承载更高的并发访问量;而执行进 销存业务的管理端,则不会承载这么大的访问压力。

所以在部署项目的时候,我们更希望能够在更多的服务器节点上部署客户端,而对于管理端程 序,我们只要有一两个节点进行部署就足够了。

但是,这对于单体式开发的项目来说,是根本不可能完成的任务。因为毕竟在单体式开发项目当 中,客户端和服务端的代码是绑定在一起的。

②细说SpringBoot框架5大优势

有缺陷才会有需求,有需求就会有进步。

就是因为在生产开发过程中,类似于诸如SSM框架整合的开发模式暴露出了上述的各种缺陷, 才会催生出SpringBoot这样优秀的框架。下面我们就来说明一下,SpringBoot框架的5大优势。 1.SpringBoot项目不需要模板化的配置文件:

之前我们说过,在进行SSM项目整合的过程中,我们会使用到大量模板化的XML配置文件。

这些配置文件不仅晦涩难懂,而且还不能省略。配置文件的编写,消耗了程序猿大量的精力,并 且还不好进行维护。

既然这些配置文件都是高度模板化的,所以在SpringBoot框架当中,对这些模板化的配置文件都 进行了整合。

实际上在SpringBoot框架当中,这些配置文件依然是存在的,只不过:

    1.这些配置并非以XML文件的形式存在;

    2.这些配置文件中的绝大部分内容都已经被SpringBoot框架写好了,不需要我们手动编辑。

所以,有这样一种方便的框架整合工具,我们何乐而不为呢?

2.SpringBoot使用各种starter整合框架jar包依赖:

在配置一个SpringBoot项目使用的Jar文件依赖的时候,我们不需要再去手动导入茫茫多的依赖声 明,甚至不需要过分关心jar包之间的版本关系,因为SpringBoot已经将这些jar文件的依赖声明, 封装在了各种starter当中。我们只要在pom.xml文件中导入适当的starter依赖声明,就相当于同时 导入了某个框架所需要的依赖的所有jar文件声明。

并且,这些整合的jar文件之间的版本对应关系,都已经在SpringBoot框架当中进行了合适的匹 配,真的是“一句顶一万句”。

3.SpringBoot项目只有一个配置文件,而且不是XML文件:

SpringBoot项目的构件方式与结构虽然简单,但是对于某些自定义的配置选项,SpringBoot依然 为我们留出了手动配置的空间。

但是在默认的SpringBoot项目结构中,只有一个全局配置文件。也就是说,基于SpringBoot框架 的各种框架整合的自定义配置,都可以在这一个配置文件中完成。

并且,这个配置文件的类型不再是语法晦涩难懂的XML配置文件,而是结构相对轻巧的.properties 配置文件或者.yml(.yaml)配置文件格式。

对于.yml(yaml)配置文件的编写方式,我们会在后续进行详细讲解。

现在我们只要知道这种文件形式相比xml配置文件更加好用就行了。

4.项目自带Web容器:

基于SpringBoot的Java Web项目当中,都自带一个经过简化的集成版本Web容器。

这个Web容器可以是Tomcat、Jetty等等常见的Web容器,其选用的容器类型是可以切换的。

并且,不论是基本的Java SE项目,还是通过框架整合的Java Web项目,最终打包的方式都是jar 包方式!

也就是说,我们只要像运行一个可执行的jar文件那样运行一个Java Web项目就可以了,SpringBoot框架中为当前项目集成的Web容器将完成原先第三方Web容器所有的工作,并且,项 目启动时间着实感人!

这样一来,妈妈再也不用担心我的运行环境问题。

5.微服务开发基于SpringBoot框架:

就像之前我们举的例子那样,对于一个电商网站来说,真正应该在多个服务器节点上进行部署 的,只有客户端部分,而管理端的代码,只要在一两个服务器节点上进行部署即可。

基于SpringBoot框架的Java Web项目,完全可以将客户端部分和管理端部分进行分离,分别在两 个不同的项目中进行实现。

并且再加上后期SpringCloud的加持,我们就能完美的实现“按需部署”的操作。

我们将每一个拆分出来的项目部分,都称之为一个微服务节点;而这种开发方式,就是有别于传 统单体式开发的“微服务开发”。

③SpringBoot到底是个啥

通过上面的内容,我们了解了SpringBoot框架的种种优点。

但是貌似我们对SpringBoot框架的概念依然很模糊。

但是从话里话外我们能够发现:SpringBoot框架本身并不是一种新的框架技术

至少,通过SpringBoot框架实现的Java Web项目,其MVC形式的开发结构依然没有发生改变。

所以从这一点上来讲:SpringBoot只是在传统框架整合开发方式的基础上,对常用的配置进行了 进一步整合,让框架整合的项目开发方式更加简单

所以如果打一个比方的话就是:

SpringBoot框架就好比一个漏斗,至于漏斗的入口处装入了多少复杂的框架整合配置我们根本无 需关心,我们只要知道漏斗的出口能够为我们提供一个结构简单、使用方便的Java Web项目结构就行了。

而这种简单方便的开发方式,我们称之为敏捷开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fwy洛伦兹力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值