Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式

使用Spring实现AOP

 [重点]使用AOP织入,需要导入一个依赖包!

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第1张图片

方式一:原生Spring API接口

创建一个增删改查的接口,并创建一个类实现这个接口,定义每个方法的具体操作。

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第2张图片

创建一个方法执行前的操作类,实现MethodBeforeAdvice类

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第3张图片

创建一个方法执行后的操作类,实现AfterReturningAdvice类

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第4张图片

在bean.xml中导约束、配AOP

在bean.xml中先注册上述的三个类为bean,让后导入AOP的约束,pointcut为切点,也就是我们所要增强的方法位置,以及配置我们增强的方法,同这个方法所要插入的切点位置。

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第5张图片

获取对象调用方法

编写测试类,获取context对象,然后通过getBean获取到之前我们定义的增删改查的那个类的接口,我们获得的是接口,然后用接口调用我们所想使用的方法,发现方法已经被加强,我们定义的方法前的操作以及方法后的操作已经增加上去了、

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第6张图片

方式二:自定义类

自己自定义个类,里面设置一个方法执行前的操作(before方法),以及一个方法执行后的操作(after方法)

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第7张图片

在bean.xml中配置,注册我们刚才自定义的类,将其定义为切面,定义切点,然后配置切面的方法以及对应加入的切点。

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第8张图片

编写测试类,获得context对象,调用getBean方法,获取到增删改查类的接口,并调用相关方法,发现也可以加强。

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第9张图片

方式三:注解方式

自己自定义个类,里面设置一个方法执行前的操作(before方法),以及一个方法执行后的操作(after方法)@Aspect注解就代表这个类是一个切面,等同于之前的在bean.xml中定义的一样,@Before代表方法执行前的操作以及包含了插入的位置(切点),@After代表方法执行后的操作以及包含了插入的位置(切点)

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第10张图片

只需在bean.xml中注册该类,并且开启注解支持即可。

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第11张图片

编写测试类,调用方法即可。

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第12张图片

也可在我们自定义的类中加一个环绕的增强方法,注解为@Around

Spring学习|使用Spring实现AOP,三种方式:原生Spring API接口、自定义类、注解方式_第13张图片

我们再调用方法即可看到结果

你可能感兴趣的:(SSM,spring,学习,java,后端)