Spring源码阅读(一)

185 阅读2分钟

image.png 「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

什么是Spring

spring,一个于2003年兴起的java轻量级开发框架,相比于spring之前的EJB时代的重量级开发模式,Spring给我们带来了更多的选择。Spring的诞生源于Rod Johnson在其著作《Expert One-On-One J2EE Development and Design》中的理念的和原型,为Java开发者提供了容器,IOC等功能,并在此之上扩展了诸如多语言(I18N),jdbc编程,和AOP等各种企业级开发框架。

一、IOC容器

容器是Spring提供的核心功能,用来对注册和管理应用中的对象,也就是我们所说的bean对象。相对于传统的直接new出来对象,Spring提供了各种方式得以让我们可以不需要自己new就可以在应用中使用各种bean,如:xml、注解扫描。IOC容器便是帮助我们做这一部分工作的对象。

image.png

二 依赖注入(DI)

作为一个IOC容器,有了对象还不够,这些bean肯定是拿来使用的,所以,Spring还提供了DI(Dependency Injection)功能,为有其它依赖的对象注入所需要的bean,这样,我们就无需在代码中直接new对象,对象之间通过接口松散耦合。Spring为我们提供了构造器注入,setter注入以及接口注入三种方式,接口注入要求注入对象时需要提供额外的接口,带有较强的侵入性,因此不常使用,现在使用比较多的是setter和构造器注入的方式,具体在项目中使用哪种,看公司的要求和个人喜好选用。

三 BeanFactory 和 ApplicableContext

Spring为我们提供了两种容器类型,即BeanFactory 和 ApplicableContext。BeanFactory是Spring提供的基础的IOC容器,默认使用懒加载的初始化策略,只有访问对象时,容器才会初始化和做相应的注入操作。ApplicableContext是在BeanFactory的基础上构建,有着BeanFactory的全部功能,在容器启动后所有的bean都已经初始化和注入完成。