IOC&DI概述:
IOC:反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器返回资源,
而IOC之后,则是容器主动地将资源推送给它所管理的组件,组件索要做到仅是选择一种合适的方式来接受资源,
这种行为也称为查找的被动形式
DI:IOC的另一种表述方式,即组件以一些预定好的方式(例如:Setter方法)接受来自容器的资源注入,相对于IOC而言,这种表述更直接
Spring容器:
在Spring IOC 容器读取bean配置创建实例之前,必须对它进行实例化,只有在容器实例化后,才可以从IOC容器获取Bean实例并使用
Spring提供了两种类型的IOC容器实现:
BeanFactory:IOC容器的基本实现
ApplicationContext:提供了更多高级特性,是BeanFactory的子接口
BeanFactory:是Spring框架的基本设施,面向Spring本身;
ApplicationContext:面向使用Spring框架开发者,几乎所有的应用场合都直接使用ApplicationContext而非底层的Beanfactory
无论使用那种方式,配置文件时都是相同的
ApplicationContext:在初始化上下文的时候就实例了所有单例bean
ConfigurableApplicationContext:扩展与ApplicationContext;新增两个方法refresh()和close(),让ApplicationContext,具有启动、刷新、关闭u上下文的功能
ClassPathXmlApplicationContext:从类路径下加载配置文件
FileSystemXmlApplicationContext:从文件系统中加载配置文件