IOC概念原理
控制反转(Inversion of Control,缩写为IOC),是面向对象编程中一种设计原则,可以降低代码耦合度,最常见的方式叫做依赖注入(Dependency Injection,简称DI)
IOC基本概念
- 控制反转:通常我们实例化对象需要同new一个类来实现,控制反转就是把创建对象的过程全部交给Spring进行管理(该new还是new,只不过有人帮你写好了new的部分你只需要调用而已)
- IOC的作用:主要目的就是解耦合,开篇的案例就是IOC实现
IOC底层原理
- xml解析技术
- 工厂设计模式
- 反射机制
IOC接口(BeanFactory)
-
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
-
Spring提供IOC容器实现两种方式
BeanFactory(Spring内部使用一般不提供给开发人员,开发中我们一般不用这个…)
在加载配置文件的时候不会创建对象,只有在使用的时候才创建对象
public void testAdd() { //加载spring配置文件 BeanFactory content = new ClassPathXmlApplicationContext("bean1.xml"); //获取配置文件创建的对象 User User = content.getBean("User",User.class); //输出 System.out.println(User); User.add(); }
ApplicationContext(BeanFactory的子接口,比BeanFactory功能多)
在加载配置文件的时候就会把配置文件中的对象进行创建
public void testAdd() { //加载spring配置文件 ApplicationContext content = new ClassPathXmlApplicationContext("bean1.xml"); //获取配置文件创建的对象 User User = content.getBean("User",User.class); //输出 System.out.println(User); User.add(); }
-
ApplicationContext接口中的实现类(Ctrl + H查看)
FileSystemXmlApplicationContext:需要接收盘符路径
ClassPathXmlApplicationContext:接收src下的路径即可
-
BeanFactory接口中的实现类
IOC操作Bean管理概述
-
什么是Bean管理
Bean管理指的是两个操作:
(2)Spring创建对象
(3)Spring注入属性(之前分析的cc2中有用到set设置属性值,这个就是注入属性)