AOP概述

AOP中的名词

Spring2.0版本前的AOP

  1. 小试牛刀AOP

  2. Spring中的通知

  3. RegexpMethodPointcutAdvisor切入点和通知类关联使用

  4. 给目标类新增接口

  5. JDK代理和CGLib代理都是动态代理

  6. 一次生成多个代理对象

  7. 根据切入点生成代理对象

  8. 编程方式创建代理对象

  9. TargetSource

    1. HotSwappableTargetSource

    2. PrototypeTargetSource

AspectJ风格的SpringAOP

  1. Aspect风格和Aspect编译器

  2. 一个简单的入门

  3. 支持的切入点匹配器

  4. 切入点组合

  5. 注解方式的连接点

  6. 连接点的通用参数

  7. XML方式使用AOP

  8. 给目标对象增加接口

真正的AspectJ编译器

本类调用为什么会失效

AspectJ编译器体验

AOP概述

AOP要做的是将业务代码和功能代码分开实现。例如,一个类中的一个方法要往数据库添加一条数据,删除一条数据。这两个业务操作,都用得上事务管理。那么将事务管理抽取出一个类,类里的方法就是开启事务,提交事务,和回滚事务。AOP负责将事务代码和业务代码无缝结合在一块。

AOP中的名词

通知(Advice):通常我们要对目标类的某个方法进行增强。可以增强的点有方法执行前,后,异常后,finally中,或者前后一块(环绕)。

目标类(Target):业务类。通知就是要和目标类中的方法结合的。

连接点(JoinPoint):一个类的每个方法都可以被增强,这些方法就是连接点。

切入点(Pointcut):切入点匹配器,通常是execution表达式。被匹配到的具体方法,就是切入点。

引入(Introduction):spring允许对一个bean动态的实现一个接口。

代理(Proxy):实现AOP操作的方法就是通过代理,通过创建一个目标类的代理对象,在代理对象里对目标类增强。

切面(Aspect):切入点和通知的类方法结合的过程就是切面。

织入(Weaving):创建代理对象的这个过程就是织入。

Spring2.0前的AOP

1 小试牛刀AOP

package springcode.aop.spring;/*
 * @auther 顶风少年
 * @mail dfsn19970313@foxmail.com
 * @date 2020-01-25 18:54
 * @notify 通知类
 * @version 1.0
 */

import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;

public class BeforeAdvice implements MethodBeforeAdvice {

    @Override
    public void before(Method method, Object[] objects, Object o) throws Throwable {
        System.out.println("我是BeforeAdvice");
    }
}
View Code

相关文章: