IOC的底层原理
程序员文章站
2022-05-24 09:48:47
...
控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
使用 IOC 目的:为了耦合度降低
IOC的底层原理:xml解析,工厂模式,反射
IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
Spring提供IOC容器实现两种方式:(两个接口)
-
BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用
*加载配置文件的时候不会创建对象,获取(使用)对象的时候才会创建对象@Test public void test(){ //加载spring配置文件 BeanFactory applicationContext = new ClassPathXmlApplicationContext("bean1.xml"); //获取配置文件创建的对象 User user = applicationContext.getBean("user", User.class); System.out.println(user); user.add(); }
-
ApplicationContext:BeanFactory的子接口,提供了更多更强大的功能,一般由开发人员进行使用
*加载配置文件的时候就会创建配置文件的对象。@Test public void test(){ //加载spring配置文件 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean1.xml"); //获取配置文件创建的对象 User user = applicationContext.getBean("user", User.class); System.out.println(user); user.add(); }
ApplicationContext接口的实现类:
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext区别:
-
ClassPathXmlApplicationContext
默认文件路径是src下那一级 -
FileSystemXmlApplicationContext
这个类,默认获取的是项目路径,默认文件路径是项目名下一级,与src同级。
如果前边加了file:则说明后边的路径就要写全路径了,就是绝对路径
file:D:/workspace/applicationContext.xml