IOC:
IoC,即控制反转,就是有容器控制程序之间的关系,而非传统实现中,由程序代码直接用new实现。控制权由应用代码中转到了外部容器,因此称作控制反转。IoC又称DI,依赖注入,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,也就是由容器动态的将某种依赖关系注入到组件之中(系统开机,USB设备加载,运行在计算机中的Win OS依赖USB设备进行数据存取,然后写入win文件访问组件)
在一个业务类中,如果要用到ClassA,是不是要new一个ClassA对象?这个就等于是业务类主动的去创建一个对象。引用spring之后,怎么处理呢?是这个业务类在需要一个ClassA对象时,由spring IOC容器去创建这个ClassA对象,然后注入到业务类需要的地方。这里就体现了控制反转的意思。也就是创建这个ClassA对象由业务类主动的去创建改为了被动的接受spring IOC容器的注入。
AOP:
AOP,面向切面编程,核心能力是通过预编译的方式和运行期动态代理实现在不修改代码的情况下给程序动态统一添加功能的一种技术;
面向切面,多用在日志记录、事务管理、安全验证等。(拦截器是AOP思想的一种实现)
某种意义上很像代理。比如希望在执行业务类的时候,同时记录日志。可以在执行业务类的代码后插入一部分记录日志的代码。但业务类有很多,如果每一个业务类都调用这段写日志的代码,就好麻烦,而且写日志的代码与业务类的代码也耦合在一起。所以这时就可以用到AOP,把这段写日志的代码抽出来,把它叫做一个切面,动态切入到指定方法的指定位置,这个位置叫做切入点。
这种思想就是面向切面的思想,它其实也是面向对象思想的一个补充。
原文地址:http://www.cnblogs.com/IcreamPrince/p/3995610.html