揭开Spring的神秘面纱(上)

1、Spring家族成员

  • Spring(2004.03.24)
  • SpringMVC(2014)
  • SpringBoot(2014.04)
  • SpringCloud(2016.8.24)

2、Spring、SpringMVC、SpringBoot、SpringCloud的区别

  • Spring——一个为解耦而生的轻量级框架
  • SpringMVC——一个为替代ssh而生的带有MVC的Spring框架
  • SpringBoot——一个为简化SpringMVC配置而生的Spring框架
  • SpringCloud——一个为微服务而生的基于Springboot的框架,侧重于微服务的整合和综合治理

解耦:模块或功能间的依赖性很强,往往修改时需要牵一发而动全身。而解耦恰恰是为了解决这个问题,为了降低代码修改时复杂度,降低风险。(重点在设计模式,更进一步,本质上要活用接口和抽象)。

轻量级:主要指消耗资源的大小,这里的资源主要指CPU和内存。Spring框架一定是轻量级的吗?如果只使用核心功能,确实是轻量级,但是如果你要使用了其中的大部分服务,或许就是重量级了。

MVC: Model、View、Controller。View主要指页面、Controller主要指请求转发、Model主要指要获取的数据模型(例如Service-》dao调用获取数据)

3、解密Spring框架——Spring框架核心模块解析

有人说Spring是面向Bean编程,下面是Spring框架的整体架构图:

重点:Context提供了这些Bean数据的生存环境,对于Context来说,就是要发现每一个Bean之间的关系,为他们建立和维护好这种关系。所以Context就是一个Bean关系的集合,这个关系的集合,就叫做IOC容器。而Core所做的事情,就是发现、建立和维护每个Bean之间关系所需要的一系列工具,或许把Core理解成Util更好。具体参照下图:

Bean和Core模块提供了整个框架最基础的部分,包括了IOC和DI。

  • Core:框架基本核心的工具类,也是其他组件的核心。
  • Bean:包含访问配置文件,创建和管理bean以及进行Inversion of Control/DI相关操作的类

Context建立在Core和Bean提供的基础上。提供框架式访问对象的方式,ApplicationContext接口是关键。

Core、Bean、Context构成了Spring的骨架。

BeanFactory:本质上就是一个Bean的工厂(接口),主要负责实例化、定位、配置应用程序中的对象以及建立这些对象间的依赖。简单来说就是负责配置、创建和管理Bean。

ApplicationContext:也就是我们常说的Spring上下文,是一个BeanFactory的子接口(继承关系),这也说明了Spring容器中运行的主体对象是Bean。

ApplicationContext必须要完成的几件事:

  • 标识一个应用环境
  • 利用BeanFactory创建Bean对象
  • 保存对象关系表
  • 能够捕捉各种事

具体可以看一下下面Spring的类图:

 

最后,欢迎扫码加入星球《极客e家》,星球里,大咖云集,我们将一起打造极客文化。在这里,您将体会到:

【科技动态】:我们聚焦软件技术发展趋势和行业最新动态,尤其ChatGPT这波的AI风向标,让您轻松掌握一手科技资讯。

【共同成长】:除了传统的【系列课程 & 面试】栏目之外,我们还将分享优质的技术文章和工具等,还有更多来自星主和各个小伙伴的原创学习资料,让您的技术更上一层楼,生产性更进一步提高,我们还提供技术交流和问答平台,更有针对性的解决您的问题。

【小白逆袭】:如果您是刚入行或工作不久的软件小白,在这里,您将在极客文化的熏陶中,引领您走向技术大牛之路。

【技术面试】:我们也会分享一些技术面试的重点和常问的技术问题。

【行业资讯】:分享和探讨最新行业资讯,尤其是星主所在城市(大连)的软件行业动态和技术趋势。

更多精彩内容,期待您在星球中探索。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部