Spring基础
说起Spring离不开IOC和AOP
先来说一说IOC
- IOC 解决的是对象管理和对象依赖的问题
之前是我们自己手动new出来的对象,现在则把对象交给Spring的IOC容器管理。
IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建和依赖关系。等我们需要用对象时,直接从工厂里获取。
IOC还有两个非常重要的概念
- 控制反转
- 依赖注入
我认为控制反转指的就是把原有自己掌握的事交给别人去处理,它更多地是一种思想,或者可以理解为设计模式,比如本来由我们自己new出来的对象,现在交由IOC容器,把对象的控制权交给第三方了。
而依赖注入 在我的理解下 他其实就是控制反转思想的具体落地实现方式,对象无需自行创建或者管理它的依赖关系,依赖关系将被自动注入到需要他们的对象里去。
好处
- 将对象集中统一管理
- 降低耦合度
其实也就是工厂模式的好处
再说一下AOP
面向切面编程,是对面向对象的进一步理解,他解决的是非业务代码抽取的问题。
AOP底层的技术是动态代理,再Sping内实现以来的是BeanPostProcessor(存疑)
比如我们需要在方法上注入些重复性的非业务代码,就可以利用SpringAOP 但在实际的生产环境中,还没有遇到具体的应用。