1、 IOC (Inversionof Control):
其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起资源查找请求。作为回应,容器适时的返回资源。
而应用了IOC之后,则是容器主动将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。
这种行为也被称为查找的被动形式。
2、 DI (DependeceInjection):
IOC的领一种表述方式:即组件以一些预先定义好的方式(例如:setter方法)接受来自容器的资源注入。
相对于IOC而言,这种表述更直接。
1、Spring IOC容器:在Spring IOC容器读取Bean的配置创建实例之前,必须对IOC容器本身进行初始化,
只有容器实例化后,才可以从IOC容器里获取Bean实例并使用。
2、Spring提供了两种类型的IOC容器实现(实现不同,配置文件都是相同的):
① BeanFactory:IOC容器的基本实现,BeanFactory是Spring框架的基础设施,面向Spring本身。
② ApplicationContext: 提供了更多的高级特性,是BeanFactory的子接口,ApplicationContext面向Spring框架的开发者,通常情况下使用都使用ApplicationContext。
1、ApplicationContext 的两个主要实现类:
① ClassPathXmlApplicationContext:从类路径下加载配置文件。
② FileSystemXmlApplicationContext:从文件系统加载配置文件。
2、ApplicationContext 的两个主要子接口:
① ConfigurableApplicationContext:新增加两个主要方法: refresh()和close(),让容器具有启动、刷新和关闭上下文的功能。
② WebApplicationContext:是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作。
调用 ApplicationContext 的 getBean 方法,参数可以是:
① Bean 的 id
② Bean 的类型 (类名.class),注意:若容器中包含多个类型相同的Bean则会抛异常