spring源码(一)core container概览

一、概览

下图是spring框架的概览图(本系列使用的spring版本为5.1.5),可以看到core container是spring的基石。今天就来聊聊它的主要功能,组成部分。

先来看下core container的组成部分,有个大体认识。

  • Core:核心工具包,包括字节码操作cglib、asm,资源的抽象Resource,对象实例化化工具等等。
  • Beans:Bean 的定义、Bean 的创建以及对 Bean 的解析。
  • Context:Context模块建立在Core和Beans模块之上,是Bean运行环境(即保存维护Bean的状态、数据,Bean之间的关系),又称之为Ioc容器。
  • SpEL:提供了一个强大的表达式语言,可以在运行时查询和操作对象。

Java是OOP语言,如何管理OOP却没有提供一个解决方案,在一个项目中,各个对象何时创建,何时销毁,对象间由于存在依赖关系,创建销毁的顺序怎样?都是比较令人头疼的问题,

spring的IoC和DI解决了这一问题,提供了Bean的生命周期管理,依赖管理,这也正是spring如此流行的原因。其中Bean是实体域(被管理对象)。ApplicationContext是服务域,负责Bean的生命周期管理。

ps:
IoC:控制反转,通俗点说就是之前是我们去new 某个对象,现在由容器去实例化对象,我们只管声明对象。
DI:依赖注入,告诉spring 实例化对象a需要依赖的对象,由spring去 组装。

posted @ 2020-05-27 16:08  walterlee  阅读(524)  评论(0编辑  收藏  举报