有人能通俗介绍下SPRING的AOP吗?

来源:百度知道 编辑:UC知道 时间:2024/06/23 12:45:47
看书好难懂

想简单通俗的说,额,有难度.AOP主要是针对事物处理来说吧,而且是相对于以前的编程式事物处理的,不用AOP的话,我们得通过硬编码的方式将事物处理写在方法中,有了AOP之后,我们只需要在spring的配置文件中配置一下事物就可以了,这就叫声明式事物处理.一般配置时是通过配置匹配某个格式的方法名,当运行到这种方法的时候spring就会拦截下它来,并给它加上事物的处理了

AOP(Aspect Oriented Programming)面向切面编程.是一种比较新颖的设计思想.是对OOP(Object Orientd Programming)面向对象编程的一种有益的补充.

OOP对业务处理过程中的实体及其属性和行为进行了抽象封装,以获得更加清晰高效果的逻辑划分.研究的是一种“静态的”领域.

AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段.研究的是一种“动态的”领域.

Spring的是AOP: Spring提供了AOP的一种实现.但实现AOP的不仅仅是Spring,还有其他更加细颗粒的框架比如说AspectJ.

简单的说就是spring 的AOP 就是控制反转。
什么是控制反转呢?如果C对象要去调用A对象 的话,A对象会把这个工作交给第三方来处理B。让C对象直接去调用V,对象而不掉用A对象。

AOP:面向方面的编程,作为一种新的编程思想是面向对象编程的有力补充,面向对象的编程已经可以解决我们所遇到的大部分问题,但在某些条件下,例如特殊权限的管理,方法的校验等等,面向对象的思想很难提出合理的解决方案.这时采用AOP的方法,引入一个切面的概念,优雅的解决了类似的问题.实现AOP的方式有很多,例如可以利用Java提供的动态代理,可以采用字节码生成的方式,还有的是对整个语言进行了扩展,例如AspectJ,所以AspectJ是一种语言而不是框架.
简单的说,AOP就是在方法调用时,对方法进行拦截,加入适当的操作以完成某种功能.它不仅仅是能提供声明式事务管理的,当然我们平时可能用到最多的就是它的这个功能,EJB也提供了类似的事务管理,只不过一旦使用了EJB,就必须对它全盘接受,褒贬不分,似乎有点扯远了,呵呵~