IOC的概念和原理
ioc概念
什么是IOC
IOC的底层原理
通过画图理解IOC的底层原理
传统的方式使UserService这个类里调用另一个类UserDao里的add方法
在UserService这个类里new一个UserDao对象并且调用方法
但是这样耦合度太高了,如果UserDao里面的东西改动了UserService也要改,非常的麻烦
后来的设计模式——工厂模式处理了一部分问题
使用中间的工厂类作为中转站,但是工厂和UserService之间还是有耦合度,怎么办降低耦合?
IOC是如何做的?
利用xml,工厂模式,反射
此时我们的外部代码不用动,需要修改工厂类的代码
此时classValue获取我们配置文件里的包名,也就是
再通过包名反射class文件,创建包内这个类
最后再返回并且强制转换我们需要的类
此时只有工厂和xml文件存在耦合,但是更改xml文件相对来说比较容易,此时耦合度我们比较满意
IOC的接口
所以ioc底层到底是什么?
ioc思想实现出来就是一个ioc容器,ioc容器的底层就是一个对象工厂
Spring提供实现IOC的两种方式(两个接口)
也就是之前我们代码中实现加载配置文件的代码,在我们的代码中用这两种都可以,但是他们的不同点就是创建对象的时机不一样
第一种是加载的时候不创建,获取对象创建
第二种是加载的时候创建,获取对象直接获取
那么我们两种用哪一种更方便?
第二种,因为我们的web程序希望启动的时候就把需要的对象创建好,这样在运行的过程中直接使用就行,比较方便其他的计算什么的
Applicationcontext的实现类的不同点
上一个在使用的时候要填写文件的在c盘的位置
下一个使用时候只要填写在src下的包名就可以了