IOC和AOP
Spring IOC
Spring IOC解决的是对象的管理和依赖问题。
我们将需要手动new出来的对象直接放在Spring IOC这个大容器管理中,而这个容器不光可以存放我们的对象还可以帮我们管理这些对象以及他们创建和依赖关系。当我们需要用到这个容器里的对象的时候只需要从里面取出来就行了。
在IOC中的两个概念控制反转和注入依赖
控制反转: 把原有的自己掌控的事交给别人处理。就像上面刚提到的IOC,我们为了方便省事将一些对象(本应该由我们自己new的对象)交给了IOC,等同于我们将控制权交给了IOC,这就是控制反转
注入依赖: 注入依赖和控制反转用我自己的理解是存在一种依赖关系,控制反转需要依赖注入才能够实现,一个对象的创建有它自己的依赖需要创建或者管理,而在这里对象不需要理会,依赖关系将会被自动注入 到需要他们的对象中去。
使用IOC的好处: 将对象集中统一管理,降低耦合度
如果说为什么非要把我的对象交给IOC来管理自己来不行吗?
自己来当然可以,如果自己项目里的对象都是new一下就ok了的没有多个实现类的那种,连框架都不需要,new多少个自己就管理多少个。当然Spring不是只有IOC还有其他很多,像Bean管理、对象增强AOP等…
Spring AOP
Spring AOP解决的是非业务代码抽取的问题。
通过BeanPostProcessor依赖实现
所谓的非业务代码抽取,相当于我们在某些方法上注入一些重复性的非业务代码,就可以利用Spring AOP,简单来说就是优化自己的代码。