前言
作为一名开发人员,阅读源码是一个很好的学习方式。本文将结合《Spring源码深度解析》来分析Spring 5.0.6版本的源代码,若有描述错误之处,欢迎指正。
Spring是2003年兴起的一个轻量级Java开源框架,旨在解决企业应用开发的复杂性。Spring发展至今,衍生出非常丰富的模块,并应用在多种场景,比如:桌面应用,Web应用等。Spring的模块化可以允许你只使用需要的模块,而不必全部引入。
目录
一、整体架构
-
核心容器
-
数据访问/集成
-
Web
-
AOP
-
Test
二、设计理念
Spring是面向Bean的编程(BOP:Bean Oriented Programming),Bean在Spring中才是真正的主角。Bean在Spring中作用就像Object对OOP的意义一样,没有对象的概念就像没有面向对象编程,Spring中没有Bean也就没有Spring存在的意义。Spring提供了IoC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系。
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
三、使用场景
-
典型的Spring web应用程序
-
Spring中间层使用第三方web框架
-
远程调用
-
EJBs-包装现存POJOs
一、整体架构
Spring框架是一个分层架构,他包含一系列的功能要素,并被分为大约20个模块,如下图所示(很遗憾,