- IOC:控制反转,把对象创建和对象之间调用过程交给spring进行管理。
- IOC 控制反转的过程(涉及:xml解析,工厂模式,反射),xml解析中获取类型,然后在反射中,通过类名来获取字节码,再通过newInstance()方法获取对象,进一步降低类之间的耦合度。
- IOC接口
- IOC思想是基于IOC容器完成的,IOC容器底层就是对象工厂。
- 实现IOC的接口包括BeanFactory 和 ApplicationContext
- BeanFactory :IOC容器的基本实现,是spring内部使用的接口,不提供给开发人员使用。并且加载配置文件时,不去创建对象,在获取对象时才创建对象。
- ApplicationContext:是BeanFactory 接口的子接口,功能更强,一般有开发人员使用。不同的是,ApplicationContext在加载配置文件时就创建了对象。这里的好处是当项目部署到服务器时,一开始就配置过了创建了对象,就会比用时才创建更快。
package com.xjw.spring5.testdemo;
import com.xjw.spring5.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring5 {
@Test
public void testAdd(){
//1、加载spring的配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//classpath就是src内的路径。
//2、获取配置创建的对象
User user = context.getBean("user",User.class);
System.out.println(user);
user.add();
}
}
tips:鼠标放在接口上,如ApplicationContext 上,ctrl+h可以看到接口的目录,看到有什么接口可以用。