首页 > 代码库 > Spring学习笔记之The IoC container

Spring学习笔记之The IoC container

IoC is also known as dependency injection (DI). 这是一个过程?什么样的过程呢?对象自己定义它的依赖关系,这意味着,那些他们依赖的对象,只能通过构造函数参数,工厂方法参数或用set方法在它被创建出来后给予。Srping容器在创建这些对象的时候就注入这些依赖项。控制反转到底是什么东西呢?说白了其实就是以前我想吃饭,我需要自己找饭馆,自己找座位,自己下单子,最后才能吃上饭,现在呢?有了spring的容器,你就不需要去找了,要什么给什么,它都替你搞定,不需要四处找了,全给你包了,这就是控制反转。以前取决于你找没找到,现在取决于你要没要。

SpringIOC容器有两个基础包,哪两个基础包呢?org.springframework.beansorg.springframework.context packages
org.springframework.beans 这个包里边的factory子包下有个BeanFactory ,这个是个顶级接口,定义了一堆getBean方法
org.springframework.context 这包里边有个ApplicationContext ,它继承了两个接口ListableBeanFactory,和HierarchicalBeanFactory,这两个呢?都继承至BeanFactory
ApplicationContext 主要是干什么事情的呢?
1、更好地于AOP进行集成,这个没感受到,不会是假的吧?
2、信息资源处理,国际化?这个主要是因为ApplicationContext 还继承了另外一个接口吧,MessageSource 。
3、事件发布,这个是因为继承了ApplicationEventPublisher。
4、application-layer specific contexts such as the WebApplicationContext for use in web applications.这点指的是这个接口吧?ResourcePatternResolver
又总之了,BeanFactory 提供的是框架的基本配置和基本功能(基本功能有哪些呢?getBean、containsBean、isSingleton、isPrototype、isTypeMatch、getType、getAliases也就这7个基本功能);ApplicationContext 增加了更多的企业级开发功能,基本上就是一个BeanFactory的完全集,也是,继承了那么多接口,这个也是我们经常用到的。
在Spring中,对象是形成应用的基石,而哪些被spring容器管理的对象被称为beans,如果没被管理,那是不是不能称为bean呢?
一个bean是一个被spring容器管理的对象,从他被创建装配到销毁都要被spring容器管理。换句话说,一个bean只是你应用中众多对象中的一个,beans和他们之间的依赖关系,是由容器的元数据来展现的。
 

Spring学习笔记之The IoC container