一、什么是 Spring IoC 容器
IoC (Inversion of Controller,控制反转)是一种概念,一种设计模式
这种设计模式并不是 Spring 或者 Java 独有的。含有 IoC 容器的框架有多种,除了 Spring,还有 Guice, Jboss 等
所谓 控制反转,就是将 对象的控制权 由自己控制 转交于 容器控制。传统是使用 new 关键词来主动创建对象的,而在Spring中,是使用 IoC 容器来创建和管理对象的。我们把对象存储在 IoC 容器中,需要什么对象直接描述给容器,容器会将我们需要的对象创建好直接注入到代码中,而且也会将对象所需的外部资源(例如存在依赖关系的对象、常量数据)也注入到代码中。所以 IoC 模式也可描述为 DI(Dependency Injeciton,依赖注入)
因此,Spring IoC 容器的用途:
1)管理对象,包括 创建对象、发布对象、销毁对象等整个生命周期
2)查询对象的依赖关系,注入依赖对象
二、为什么要用 Spring IoC 容器
对于Java初学者,我们一般会创建多个对象进行相互合作,来实现业务逻辑
例如我们创建一个实现类
无 IoC 容器的调用方式:
B b = new B(new AInterface()); //需要在创建B实例之前生成A实例
b. service();
如果B类中调用不只A类一个,还有其他C、D、E等类,那么在使用B类时,还需要研究其他类的创建。这样就会出现对象之间的多重依赖性关系,使得代码维护起来比较费劲
所以为了减低对象之间的耦合度,因此引入了 IoC 容器。将 A、B、C、D、E等类都放到容器中,如果 B 类需要 A类,IOC容器会主动创建一个对象A 注入到对象 B 需要的地方
三、基于 XML 的 Spring IoC 简单案例
step1:创建好一个 Spring 项目
step2:创建一个User 类,实现一个简单的自我介绍功能
step3:创建 bean.xml,进行 IoC 容器的配置,配置创建的对象
在 resources 目录下右击选择 new -> XML Configuration File ->Spring Config,创建 bean.xml
配置 User 对象
step4:创建测试类 testIoCMain,使用 ApplicationContext 读取 bean.xml,将 User 对象配置到 IoC 容器中, 使用 getBean 方法获取到对应的对象
step5:运行测试类 testIoCMain
运行结果
网友评论