IOC底层原理:xml解析、工厂模式、反射(通过操作类的字节码文件操作类中所有内容)
1.使用工厂模式完成解耦操作:
原始方式耦合度太高了,使用工厂模式降低了Dao和Service之间的耦合度。
2.IOC过程
- xml配置文件,配置创建的对象
- 有service类和dao类,创建工厂类
class UserFactory { public classValue = class属性值;//1.xml解析 Class clazz = Class.forName(classValue)//2.通过反射创建对象 return (UserDao)clazz.newInstance(); }
进一步降低耦合度。
3.IOC接口
- IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。
- Spring提供IOC容器实现的两种方式:(1)BeanFactory:是Spring内部的使用接口。加载配置文件时不会创建对象,在获取对象的时候才创建对象,什么时候用什么时候创建对象。(2)ApplicationContext:BeanFactory的子接口,一般由开发人员使用。都可以加载配置文件,创建对象。在加载配置文件的时候创建对象。
- Application接口的实现类(选中之后ctrl+h):(1)FileSystemXmlApplicationContext:文件的全路径(2)ClassPathXmlApplicationContext:类路径