AOP :面向切面编程 ,它主要关注的是程序的执行过程。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
具体解析:在java方法调用时,AOP机制能自动进行方法拦截,允许在方法调用之前,调用后,以及执行异常时添加特定的代码来完成需要的功能。
作用:1)消除编码模块之间的耦合性。 2)可以在任意阶段,向已有功能模块中填加新功能,且不侵入原有功能,是低侵入式设计。3)各步骤之间的良好隔离性 , 源代码的无关性。
IOC:控制反转,IOC和DI 他们的依赖关系只在使用的时候才建立。简单来说就是不需要NEW一个对象了。
Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维护。