AOP
什么是AOP:
1.面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。
2. 通俗的说 就是不通过修改源代码的方式,在主干功能中添加一个新的功能
AOP底层原理
1.底层使用动态代理
(1)有接口的情况使用JDK动态代理
创建接口实现类代理对象,增强类的方法
(2)没有接口的情况使用CGLIB动态代理
创建子类的代理对象,增强类的方法
AOP 术语
1.连接点
类中哪些方法可以被增强,这些方法就是连接点
2.切入点
实际被增强的方法
3.通知(增强)
实际增强的逻辑部分
通知有多种类型
前置通知 @Before
后置通知 @After
环绕通知 @AfterReturning
异常通知 @AfterThrowing
最终通知 @Around 不管有没有异常都执行
4.切面
把通知应用到切入点的过程
AOP操作
1.Spring 框架一般都是基于AspectJ实现AOP操作
* AspectJ 不是Spring组成部分,独立AOP框架,一般把AspectJ和Spring 框架一起使用,进行AOP操作
2.基于AspectJ实现AOP操作
(1)基于xml配置文件实现
(2) 基于注解方式实现