Spring IOC和DI概述

一、IOC和DI

1、 IOC (Inversionof Control):

其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起资源查找请求。作为回应,容器适时的返回资源。

而应用了IOC之后,则是容器主动将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。

这种行为也被称为查找的被动形式。

 

2、 DI (DependeceInjection):

IOC的领一种表述方式:即组件以一些预先定义好的方式(例如:setter方法)接受来自容器的资源注入。

相对于IOC而言,这种表述更直接。

 

二、创建Spring IOC容器

1、Spring IOC容器:在Spring IOC容器读取Bean的配置创建实例之前,必须对IOC容器本身进行初始化,

只有容器实例化后,才可以从IOC容器里获取Bean实例并使用。

 

2、Spring提供了两种类型的IOC容器实现(实现不同,配置文件都是相同的):

① BeanFactory:IOC容器的基本实现,BeanFactory是Spring框架的基础设施,面向Spring本身。

② ApplicationContext: 提供了更多的高级特性,是BeanFactory的子接口,ApplicationContext面向Spring框架的开发者,通常情况下使用都使用ApplicationContext。

 

三、ApplicationContext概述

1、ApplicationContext 的两个主要实现类:

① ClassPathXmlApplicationContext:从类路径下加载配置文件。

② FileSystemXmlApplicationContext:从文件系统加载配置文件。

 

2、ApplicationContext 的两个主要子接口:

ConfigurableApplicationContext:新增加两个主要方法: refresh()和close(),让容器具有启动、刷新和关闭上下文的功能。

WebApplicationContext:是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作。

 

 

四、从Spring IOC容器中获取Bean

调用 ApplicationContext 的 getBean 方法,参数可以是:

① Bean 的 id

② Bean 的类型 (类名.class),注意:若容器中包含多个类型相同的Bean则会抛异常

你可能感兴趣的:(JavaEE,ioc,di)