一、简介
Spring Aop的注解是在IOC注解基础上,重点突出增强类(Advice)的注解,一个增强类可以看成是一个切面(Aspect),因此,Aop注解的学习,基本上可以是看成增强类所用到的注解的学习。重点需要掌握了解以下几个知识点:
- 增强类定义为组件Bean的同时,还需要定义为增强类(切面)的Bean,因此,他需要在@Componen的基础上,再加上注解@Aspec;
- 增强类中的增强方法上,可以用注解来定义这个增强方法可以用在哪些切入点上;
- 切入点可以映射到一个方法中,这个方法可以是Advice(增强类)中的一个方法,也可以自定义类中定义的一个静态方法,如果切入点还要引入到别的增强类,那么建议使用自定义类的静态方法做为切入点的引用;
- 由于目标对象(被代理对象)以及增强类都被加载到AOP容器中,且这个Bean和Aspect都存在注解对这两个Bean的说明,因此,在xml文件中,产生代理对象只需一句代码;
二、增强类(Advice)加载到AOP文件中
Advice是一个增强类,加载到AOP容器的时候,需要配置两个注解。一是他作为一个正常的Bean的注解@Component,另一个是作为一个切面(Advice)@Aspect,具体示例代码如下:
import aop3.pos.StringToUserPropertiesEditor;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class UserAop5Advice {
// TODO: 2021/6/30 将增强类中的增强方法做为代理对象方法的前置增强 ,切入点的定义是在一个类中,用静态方法引入了切入点
@Before(value = "UserAspect.aspect()")
public void