springAop实现原理

Spring的核心特性之一就是面向切面编程(AOP),它允许程序员通过定义切点和切面,将横切关注点与业务逻辑分离,并在运行期动态将切面织入到目标对象的方法执行过程中。Spring AOP的实现原理如下:

1、基于代理的实现

Spring使用动态代理技术来实现AOP。当一个bean被代理时,Spring会根据该bean实现的接口或父类创建一个代理对象,然后拦截目标方法的调用,并在目标方法的前后加入额外的行为,从而实现AOP。

2、切点

切点是AOP中的重要概念,它定义了需要被切入的连接点,即目标对象中哪些方法需要被拦截。Spring AOP中,切点可以使用AspectJ切点表达式来定义。AspectJ切点表达式可以匹配目标对象的方法,由此确定了需要被织入增强逻辑的方法,是AOP执行的入口。、

3、切面

切面定义了横切逻辑的实现,它是一个包含了advice和pointcut的类。Advice是指增强逻辑,它定义了需要织入目标方法前、后或者代替目标方法执行的代码,可以使用before、after、around等方式实现;Pointcut是指切点,它定义了对哪些方法进行拦截。

4、通知

通知是切面中的实际增强逻辑,它是指在特定的切点上执行的具体操作,Spring AOP中常见的Advice有before、after、after-returning、after-throwing和around等。

5、织入

织入是指将切面应用到目标对象的过程。Spring AOP支持三种织入方式,分别是编译时织入、类加载时织入和运行时织入。

你可能感兴趣的:(面试,spring,spring,java,代理模式)