-
AOP****基本概念是什么?
-
什么是AOP?
AOP****就是面向切面编程,或者叫面向方面编程,或者开玩笑的说叫面向方便面编程
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
用我的话讲,比如一个方法,他只能计算加法,而不能计算乘法,但是又不想改源码!这时候可以在外面创建一个类,在这个类中通过AOP的技术给这个方法进行添加功能的操作,这就是AOP。
- AOP****的作用(特点)是什么?
AOP****代表的是一个横向的关 系,将“对象”比作一个空心的圆柱体,其中封装的是对象的属性和行为;则面向方面编程的方法,就是将这个圆柱体以切面形式剖开,选择性的提供业务逻辑。而 剖开的切面,也就是所谓的“方面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹,但完成了效果。
实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。
- AOP****的底层原理是什么?
AOP****底层使用了动态代理
有两种情况
(1、)有接口的情况:
使用了JDK的动态代理