解释一下IOC和AOP
IOC
IOC,控制反转,一种思想。不只是Spring中有。
Spring中用IOC容器来实现了控制反转。
将手动新建对象交给了Spring来维护。
啥叫反转呢,就是本来如果你要新建一个高层的对象,他会依赖底层的。比如Car–>Framework->Bottom->Wheel->size,如果修改size,那么从高到低每一层都需要传入一个size,麻烦的很。但是IOC的话,直接用对象来
Spring时代用XML文件来配置Bean,SpringBoot时代用注解配置。
推荐阅读:https://www.zhihu.com/question/23277575/answer/169698662
例子:1.未改善
2.需要动态修改size
这样,每一层都需要传入要给size来对其进行初始化,因为上层会调用底层的构造函数,而这时候需要参数来传入。
3.依赖注入的方法来实现控制反转
这时候,通过将依赖的对象注入,也就是在当前类的构造函数中传入此类依赖的底层类,这样的话就不用再每次都传入底层类的具体参数。修改的话只需要修改底层类就行,而中间类不需要修改。
4.IOC容器
右面这个New对象的过程,就是IOC容器,被框架所接管了而不用我们手动去修改。
5.DI的三种方式
- 构造函数传递(上面的例子)
- Setter传递
- 接口传递