Spring框架总体架构图
由此可以看出Spring的核心组件为Bean、Context和Core,它们是Spring架构的基础,AOP、Web、Transaction是建立在这基础之上的
-
Spring设计核心理念
-
Spring实际上是面向Bean的编程,因此Bean才是Spring中的主角,真正的核心。
-
Bean在Spring中的作用就像Object对OOP的意义一样,没有对象的概念就没有面向对象编程,Spring中没有Bean也就没有Spring存在的意义
-
Spring流行起来的原因是因为Spring解决了一个非常关键的问题,Spring可以通过配置文件的方式将对象之间的依赖关系进行管理,也就是DI(依赖注入机制),而这个注入关系在IOC容器中进行管理,因此IOC容器中就是被Bean包裹的对象,Spring正是通过把对象包装中Bean中从而来达到对这些对象的管理以及一些额外操作的目的
-
Spring的设计策略和Java类似,当然Java本身的设计要比Spring复杂太多,但都是构建一个数据结构,然后根据这个数据结构设计它的生存环境,并让它在这个环境中按一定的规律不停的运动,在它们的不停运动中设计一系列与环境或者其他个体完成信息交换。想想其他框架应该都是类似的设计理念。
-
-
核心组件如何协同工作
- 把Spring比作一个舞台剧的话,Bean就是其中的演员,Context是舞台背景,Core是演出的道具。当然有最基本的条件还不能使这场演出脱颖而出,还要他表演的节目足够的精彩,这些节目就是 Spring 能提供的特色功能了
- 我们知道Bean包装的是Object,而Object必然有数据,如何给这些数据提供生存环境就是Context要解决的问题,对Context来说,他要发现每个Bean之间的关系,为他们建立这种关系并且维护好这种关系,所以Context是Bean关系的集合,这个关系集合又叫IOC容器,一旦建立其这个IOC容器后,Spring就可以工作了。
- Core组件有什么用处呢?Core其实就是发现、建立和维护Bean之间的关系所需要的一些列的工具
https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/index.html