本文共 1107 字,大约阅读时间需要 3 分钟。
xml 解析
工厂模式
反射
举个例子,假设我们有两个类,各自含有方法,其中UserService类要去调用UserDao类的方法:
使用原始的方式,直接在UserService类中new出UserDao类的对象,通过对象引用去调用方法。但是这种方式的耦合度太高了,也就是说对于这两个类之间的依赖太高,牵一发而动全身~
还有一种思想是工厂模式,通过创建一个对象工厂,来实现(如上图所示)。但是,这种模式同时也还具有耦合度的问题。
为了降低耦合度带来的问题,我们就使用到了IOC容器,在利用工厂模式的基础之上,又添加了xml解析和反射(通过得到类的字节码文件来操作类中所有内容
)。
1.通过配置文件,配置需要创建的对象
2.创建工厂类,创建方法
xml解析获取对象的class属性
Class.forName()
反射创建对象优点:当类改变的时候,只需要修改xml文件就可以,进一步降低了耦合度!
IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂.
Spring 提供 IOC 容器实现两种方式:(两个接口)
① BeanFactory
:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用
② ApplicationContext
:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
以上两者的作用是都可以去解析xml文件创建对象,可以互换;区别就是创建对象的时期。
![]()
一般来说,整个项目的运行会配有tomcat服务器。所以为了节约资源,在启动服务器的同时,就让类去进行加载,同时创建对象,而不是等到用的时候才去创建,那样既耗时又耗资源,所以一般采用ApplicationContext接口来实现。
转载地址:http://kyeq.baihongyu.com/