1)IOC概念和原理
1、什么是IOC
(1)IOC 控制反转,把对象创建和对象之间的调用过程,交给 Spring 管理
(2)使用 IOC 目的:为了降低耦合度
2、IOC 底层原理
(1)xml 解析、工厂模式、反射
2)IOC 接口
1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
2、Spring 提供 IOC 容器实现的两种方式:(两个接口)
(1)BeanFactory:IOC 容器基本实现,是 Spring 内置接口,不提供给开发人员使用
* 加载配置时不会创建对象,在获取对象(使用)时才去创建对象
BeanFactory cont = new ClassPathXmlApplicationContext("bean4.xml");
Person person1 = context.getBean("person", Person.class);// 此处时,才创建对象
(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。
* 加载配置文件时就会把配置文件中的对象进行创建
//此处时,已创建对象; 加载 Spring 配置文件时,就已创建 bean 对象
ApplicationContext context = new ClassPathXmlApplicationContext("bean4.xml");
这两个接口都可以加载 Spring 配置文件,获取配置文件里面的bean对象。
3、ApplicationContext 接口有实现类
3)IOC 操作 - Bean 管理(概念)
1、什么是 Bean 管理
Bean 管理指的是两个操作:
(1)Spring 创建对象
(2)Spring 注入属性
2、Bean 管理操作两种实现方式
(1)基于 xml 配置文件方式实现
(2)基于注解方式实现
4)IOC 操作 Bean 管理(基于 xml 方式)
1、基于 xml 方式创建对象
(1)在 Spring 配置文件中,使用 bean 标签,标签里面添加对应属性,就可以实现对象创建。
(2)bean 标签中常用属性介绍:
* id 属性:唯一标识
* class 属性:类全路径
(3)创建对象时,默认是执行无参构造方法完成对象创建
2、 基于 xml 方式注入属性
(1)DI:依赖注入,就是注入属性
第一种注入方式:使用 set 方法进行注入
(1)创建类,定义属性和对应 set 方法
public class Person {
private String name;
private String age;
public void setName(String name) {
this.name = name;
}
public void setAge(String age) {
this.age = age;
}
}
(2)在 Spring 配置文件配置对象创建,配置属性注入
第二种注入方式:使用有参构造方法注入
(1)创建类,定义属性,创建属性对应有参构造方法
public class Person {
private String name;
private String age;
public Person(String name, String age) {
this.name = name;
this.age = age;
}
}
(2)在 Spring 文件中进行配置
*其他: 什么是 DI ?
* DI 是 IOC 的具体实现,表示依赖注入,就是注入属性,但是注入属性需要在创建对象的基础之上完成。



