【JAVA面试】-Spring中常用的切面注解有哪些?

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程思想和技术,用于解决代码横切关注点(Cross-Cutting Concerns)的问题,如日志记录、安全授权、事务管理等。在Java中,AOP通常使用注解来声明切面和切点。
@EnableAspectJAutoProxy: 开启注解切面
@Aspect:标识一个类为切面类。
@Pointcut:定义一个切点,用于描述哪些方法需要被切入。
@Before:前置增强,表示在目标方法执行之前执行切面逻辑。
@After: 后置增强,不管是抛出异常或者正常退出都会执行
@AfterReturning:后置增强,表示在目标方法返回之后执行切面逻辑,异常不执行。
@AfterThrowing:后置增强,表示在目标方法抛出异常之后执行切面逻辑。
@Around:环绕增强,表示在目标方法执行前后执行切面逻辑。 调用被代理对象方法需要自行控
@DeclareParents:用于向目标类添加额外的接口实现。
DeclareParents使用场景:当我们已经完成了一个项目的某个阶段开发,此时需要对已完成的某个类加入一些新的方法,我们首先想到的是写一个接口,然后让这些需要方法的类实现此接口,但是如果目标类非常复杂,牵一发而动全身,改动的话可能非常麻烦。此时就可以使用此注解,然后建一个代理类,同时代理该类和目标类