曲沃县做网站公司,无锡好的网站公司,绵阳做seo网站公司,百度网盘客户端简介
在Spring框架的AOP#xff08;面向切面编程#xff09;中#xff0c;Advice接口是定义通知行为的抽象。然而#xff0c;在Spring的实际实现中#xff0c;Advice接口并没有直接被使用。相反#xff0c;我们更常见的是MethodInterceptor接口、BeforeAdvice接口、Afte…简介
在Spring框架的AOP面向切面编程中Advice接口是定义通知行为的抽象。然而在Spring的实际实现中Advice接口并没有直接被使用。相反我们更常见的是MethodInterceptor接口、BeforeAdvice接口、AfterAdvice接口等这些都是Advice接口的不同实现或与之相关的接口。这些接口定义了在方法执行的不同时刻如方法执行前、方法执行后、方法抛出异常时等执行的操作。
下面我将对Spring AOP中的一些关键接口和类进行解析
MethodInterceptor
这是Advice的一种实现方式用于拦截目标方法。它有一个invoke方法该方法在目标方法执行前后提供插入自定义逻辑的机会。invoke方法接受一个MethodInvocation对象该对象封装了目标方法、方法参数等信息。
BeforeAdvice
在目标方法执行前执行的操作。常见的实现是MethodBeforeAdvice它有一个before方法该方法在目标方法调用之前被调用。
AfterAdvice
在目标方法执行后执行的操作。Spring AOP提供了AfterReturningAdvice和AfterThrowingAdvice两种实现AfterReturningAdvice在方法正常返回后执行。AfterThrowingAdvice在方法抛出异常后执行。
Aspect
在Spring AOP中切面是一个包含了通知和切点的对象。切面可以将多个通知如前置通知、后置通知等关联到一个或多个切点。在Spring中通常使用注解如Aspect、Before、After等来定义切面。
Pointcut
切点定义了何时应该执行通知。切点通常使用表达式来匹配目标方法例如基于方法的名称、所在的包或类、参数类型等。在Spring中切点可以使用注解如Pointcut或XML配置来定义。
Advisor
顾问是一个包含了通知和切点的对象它决定了何时何地应用通知。在Spring中可以通过DefaultPointcutAdvisor或DefaultBeanFactoryPointcutAdvisor等类来创建顾问。
ProxyFactory 和 ProxyFactoryBean
这些类用于创建代理对象该对象会拦截对目标方法的调用并在适当的时候执行通知。ProxyFactory提供了更多的配置选项而ProxyFactoryBean则是一个Spring Bean可以在Spring配置文件中直接使用。
使用Spring AOP时你通常会定义切面包含通知和切点然后将这些切面配置到Spring容器中。Spring会根据这些配置自动创建代理对象并在运行时拦截目标方法的调用执行相应的通知逻辑。
源码
//通知接口 一种标识
public interface Advice {}
//前置通知
public interface BeforeAdvice extends Advice {}
//最终通知
public interface AfterAdvice extends Advice {}
//后置通知
public interface AfterReturningAdvice extends AfterAdvice {/*** returnValue:返回值* method拦截方法* args方法参数* target目标对象*/void afterReturning(Nullable Object returnValue, Method method, Object[] args, Nullable Object target) throws Throwable;}
//异常通知
public interface ThrowsAdvice extends AfterAdvice {}