共计 629 个字符,预计需要花费 2 分钟才能阅读完成。
AOP 是面向切面编程,是一种设计思维,它要在不扭转原有指标对象的根底上,为指标对象基于动静织入的特定形式进行性能扩大。这里的特定形式一种是编译时动静,还有一种是运行时动静。咱们能够将设计思维了解为 OOP(面向对象编程)思维的补充和欠缺,OOP 强调的一种动态过程,而 AOP 是一种动静过程,它要为设计好的对象在动静编译或运行时做服务增益,例如记录日志、事务加强、权限管制等。AOP 能够在系统启动时为指标类型创立子类或兄弟类型对象,这样的对象咱们称之为动静代理对象。
创立代理对象的形式有两种:
1. 借助 JDK 官网 API 为指标对象创立其兄弟类型,然而指标对象类型须要实现相应的接口
2. 借助 CGLIB 库为指标对象类型创立其子类类型对象,然而指标对象类型不能应用 final 润饰
AOP 相干术语
切面对象(Aspect): 封装了扩大业务逻辑的对象,在 spring 中能够应用 @Aspect 形容。
切入点(Poincut): 定义了切入扩大业务逻辑的一些办法的汇合,就是哪些办法要运行的时候切入扩大业务,会通过表达式进行相干定义。一个切面中能够定义多个切入点的定义
连接点(JoinPoint): 切入点办法汇合中封装了某个正在执行的指标办法信息对象。其实就是连接点是切入点办法当中的用来封装这个办法信息的对象。能够通过此对象获取具体的指标办法信息,甚至区调用指标办法(执行扩大业务逻辑)
告诉 (Advice): 切面(Aspect) 外部封装扩大业务逻辑的具体方法对象,一个切面中能够有多个告诉
正文完