文章目录
- 1、什么是IOC
- 2、简单程序实现IOC
- 1、创建maven项目
- 2、 导入相关依赖
- 3、 创建Student类
- 4、配置xml文件(applicationContext.xml)
- 4、编写测试类
- 5、测试
1、什么是IOC
IOC 全称 Inversion of Control,即控制反转,是一个软件设计原则,也是 Spring 框架的核心思想之一。
所谓控制反转,指的是将对象的创建和依赖关系的管理交给框架或容器来完成,而不是由程序员手动创建和管理。在传统的编程模式中,程序员需要显式地创建对象,并手动维护它们之间的依赖关系。而在 IOC 模式下,程序员只需要定义好对象的接口、实现和依赖关系,在容器中注册后,容器就可以自动完成对象的创建和依赖注入,从而减轻了编码工作量,提高了代码的可维护性和可扩展性。
在 Spring 框架中,IOC 的具体实现是通过“Bean 容器”来管理对象的创建和依赖关系。Bean 容器在启动时读取配置文件或注解,找到所有需要创建的 Bean 对象,实例化它们并建立它们之间的依赖关系。这样,在程序运行时,程序员只需要从 Bean 容器中获取需要使用的对象即可,而无需关心对象是如何被创建的。
总之,IOC 是一种重要的编程思想和技术手段,可以帮助程序员更加专注于业务逻辑的开发,从而提高了软件开发的效率和质量。
2、简单程序实现IOC
1、创建maven项目
2、 导入相关依赖
org.springframework spring-context 5.2.0.RELEASE
3、 创建Student类
public class Student { public void SK(){ System.out.println("同学们该上课了!!!"); }}
4、配置xml文件(applicationContext.xml)
- 创建配置文件(只有导入过依赖才可以创建配置文件)
- 配置bean
4、编写测试类
- 读取配置文件applicationContext.xml
- 获取student1对象(bean对象)
- 调用student1对象中的方法进行测试
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test01 { public static void main(String[] args) { Student student = new Student(); student.SK(); ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Student student1 = (Student) ctx.getBean("student1"); student1.SK(); }}
从代码中可以看出,我们有两个对象,student和student1。
他们两个的区别就是,student是我们手动new出来的,而student是通过配置xml文件,然后通过读取配置文件读取出来的,通过配置出来的文件我们称之为bean(对象)。
5、测试
通过测试可以看出来,我们new出来的对象,和我们通过配置的对象,可以同样使用,而IOC(控制反转)就是把我们手动new创建对象的过程,改为由外部创建对象,即通过配置的方式产生对象,着就是控制反转。这只是一个简单的IOC入门案例,接下来我们会逐渐深入。下一节为DI(依赖注入)入门案例,即IOC的具体实现方式。