aop中所有通知都写得话,chain中得interceptor有哪些
时间: 2023-12-06 19:41:23 浏览: 35
在 AOP 中,通知(Advice)是在切点(Pointcut)上执行的一段代码,而拦截器(Interceptor)则是在切面(Aspect)上对目标对象进行拦截和处理。
在 Spring AOP 中,通知分别为:
1. 前置通知(Before Advice):在目标方法执行前执行的通知。
2. 后置通知(After Advice):在目标方法执行后执行的通知,在方法执行过程中出现异常也会执行。
3. 返回通知(After Returning Advice):在目标方法正常执行并返回结果后执行的通知。
4. 异常通知(After Throwing Advice):在目标方法抛出异常时执行的通知。
5. 环绕通知(Around Advice):在目标方法前后执行的通知,可以自由控制目标方法的执行。
而在 Spring AOP 中,拦截器则是通过实现 org.aopalliance.intercept.MethodInterceptor 接口来实现的,拦截器的作用是对目标方法进行拦截和处理。Spring AOP 中常用的拦截器包括:
1. MethodBeforeAdviceInterceptor:前置通知的拦截器实现类。
2. AfterReturningAdviceInterceptor:返回通知的拦截器实现类。
3. ThrowsAdviceInterceptor:异常通知的拦截器实现类。
4. MethodAfterAdviceInterceptor:后置通知的拦截器实现类。
5. AspectJAroundAdvice:环绕通知的拦截器实现类。
相关问题
SpringAOP中通知的类型有哪些?分别有什么作用?
Spring AOP中的通知类型有以下几种:
1. 前置通知(Before advice):在目标方法执行之前执行的通知。
2. 后置通知(After advice):在目标方法执行之后执行的通知,无论方法执行是否出现异常。
3. 返回通知(After returning advice):在目标方法执行完毕并返回结果之后执行的通知。
4. 异常通知(After throwing advice):在目标方法抛出异常时执行的通知。
5. 环绕通知(Around advice):包围目标方法的通知,可以在目标方法执行前后都执行自定义的操作。
这些通知类型可以通过Spring AOP的切面(Aspect)来应用到目标方法上。具体来说,前置通知可以用于执行一些预处理操作,比如权限检查、参数检查等;后置通知可以用于执行一些清理操作,比如资源释放等;返回通知可以用于获取目标方法执行的结果并做一些处理;异常通知可以用于记录日志或者发送告警等;环绕通知则可以用于实现自定义的拦截器或者过滤器,比如性能监控、事务管理等。
在Spring的AOP中有哪些通知类型,分别什么时候执行
在Spring的AOP中,常见的通知类型包括:
1. 前置通知(Before advice):在目标方法执行之前执行。可以在方法执行前进行一些准备工作或者参数校验等操作。
2. 后置通知(After returning advice):在目标方法成功返回后执行。可以对方法返回的结果进行处理或者进行资源的释放操作。
3. 异常通知(After throwing advice):在目标方法抛出异常后执行。可以对异常进行处理或者记录日志等操作。
4. 返回通知(After advice):无论目标方法是否抛出异常,都会在目标方法执行后执行。可以用于执行一些清理工作。
5. 环绕通知(Around advice):包围目标方法的通知,在目标方法执行前后都会执行。可以在方法执行前后进行一些特定操作,也可以决定是否继续执行目标方法。
这些通知类型根据执行的时机不同,可以在目标方法执行前、执行后、抛出异常时或无论何时都执行。通过使用这些不同类型的通知,我们可以实现对不同场景下的横切逻辑进行精确控制和处理。