用学习笔记的形式记录自己在学习Spring的时候遇到的问题和自己的理解。
对AOP和IoC的理解
什么是AOP?
在网上百度应有各种各样的理解和答案,AOP(Aspect Oriented Programming)即面向切面编程。
所谓的切面即把各个模块分割开,比如日志、安全等,形成一层一层的结构,每个切面可以单独编程,如下所示
如上红圈内的日志模块和安全模块划分为切面,是立体结构,脱离了传统的“一条龙”编程,增强了代码的复用性和容错性,大大简化了开发。
切面可以就这么直观的理解他,在传统编程的基础上一刀切出来的一个面,仅为个人见解。
什么是IoC?
IoC(Inversion of Control)即控制反转。
说反转,肯定有正转,所谓正转就是我们在编程的时候由我们自己配置依赖的对象。
反转是指由负责协调各个对象的第三方组件对对象的依赖关系进行配置,依赖对象的获取被反转。这里的协调各个对象的第三方组件就称为“容器”。
控制者:IoC容器
控制内容:外部资源的获取
那么这就引出一个概念:DI(Dependency Injection)即依赖注入,实际上,DI就是IoC的具体实现,关于IoC的实现还有一种方法是依赖查找,不过已经是过去式。
所谓注入,就是将属性、方法等加载到目标对象中,完成对象的配置。
在Spring中,则是由Spring来控制对象的生命周期和对象之间的关系。
如有不足,请多多指教
参考资料:Spring 实战 第四版