美文网首页Java架构师系列Java互联网架构
Spring、SpringMVC、SpringBoot、Spri

Spring、SpringMVC、SpringBoot、Spri

作者: Java架构师CAT | 来源:发表于2019-07-17 10:19 被阅读2次

 简单梳理下Spring家族的关系。

正式开始记录自己的码农成长之路了,从哪里开始呢?就从Spring大家族开始吧。最开始学的时候可是费了点脑筋。

01—Spring

Spring是一个轻量级的控制反转和面向切面的容器框架,是家族的长子,自2003年发布以来一直引领开发界的潮流。

他相比老的JAVAEE有很多的优秀的特质,下面说说最重要的两个:

1.控制反转(IoC)

所谓控制反转,就是一个对象的使用不再是手动创建,而是被动的被传递 进来。这么做的好处就在于--解耦,尤其是面对接口编程时。

# 老的写法publicbooleansendMsg(Stringmsg){ MsgService msgService =newMsgServiceImpl();returnmsgService.sendMsg(msg);}# 有IoC后的写法@AutowiredMsgService msgService;publicbooleansendMsg(Stringmsg){returnmsgService.sendMsg(msg);}

看起来相差不大,但IoC更加的有利于代码的解耦。使用IoC后就由老的面向对象编程变成了面向接口编程,我在使用MsgService 的时候,他的实际实现是对我屏蔽的。这对解耦、拓展、维护是一个很好的基础。我要更改sendMsg的逻辑,只需再提供一个新的该接口的实现替换上就好,其他调用的地方都无需改动。JDBC驱动其实就是这个道理,提供接口规范,各个厂家提供实现就好。

2.面向切面(AOP)

AOP使程序猿更加关注主体业务的开发,一些公共的可抽象的业务比如日志、事务等,在编码时都无须额外关注。这样能更好的实现单一原则、高内聚。

02—SpringMVC

SpringMVC是在Spring的一部分,是一个WEB开发框架。

MVC指的就是MVC设计模式,Model、View、Controller。具体是什么我也不赘述了。

SpringMVC的工作流程简单来说是这样的:

1.DispatcherServlet

是SpringMVC的核心Servlet,字面意思理解,他起着调度的作用。

2.HandlerMapping

DispatcherServlet通过HandlerMapping得到该URI对应的Controller信息。

3.HandlerAdapter

拿到Controller信息后,通过HandlerAdapter调用Controller。

4.Controller

该URI的业务逻辑,完成后返回给HandlerAdapter->HandlerAdapter。

5.ViewResolver

得到Controller的返回数据后,DispatcherServlet通过ViewResolver得到相应的View。

6.View

得到View后,用Model的数据进行渲染,包装到Response中返回给前端。

图的话就是这样的

PS:刚找工作的时候面试最爱问这个

03—SpringBoot

SpringBoot是基于Spring的扩展,主要是简化了大量的配置工作。以约定优于配置、开箱即用策略,提供了一个可以快速搭建应用的框架。

目前开发中基本上都用的是SpringBoot,Spring的XML啊什么的早就忘记了。SpringBoot的使用后续会专门开篇幅介绍。

04—SpringCloud

SpringCloud是在微服务热潮下快速发展的一个框架,但我更喜欢称他为微服务解决方案。

他是的基础是SpringBoot,提供了微服务架构下的各个组件的集成序列(负载均衡、容灾、服务治理等等)。至于什么是微服务,会另开篇幅介绍。

05—结语

今天这篇文章主要就是回顾下Spring家族的关系,接下来会写一些使用上的文章,主要是SpringBoot和SpringCloud的内容,敬请期待。

Java技术资料免费分享,需要的可以关注我后私信找我要

来源:知乎

作者:白天不懂夜的黑

原文:https://zhuanlan.zhihu.com/p/73941433

声明:本文为二次转载,原文不可查

相关文章

网友评论

    本文标题:Spring、SpringMVC、SpringBoot、Spri

    本文链接:https://www.haomeiwen.com/subject/ozgflctx.html