spring动态代理在spring的哪个拓展点实现
时间: 2023-10-28 11:45:43 浏览: 41
在 Spring 框架中,动态代理是通过 AOP(Aspect-Oriented Programming,面向切面编程)实现的。AOP 是 Spring 的一个重要特性,它通过在方法执行前后插入额外的逻辑,实现了横切关注点(cross-cutting concerns)的功能。
具体来说,在 Spring 中实现动态代理的拓展点是 AOP Alliance 提供的接口和 Spring AOP 框架的实现。Spring AOP 框架使用了 JDK 动态代理和 CGLIB 动态代理来创建代理对象,这些代理对象可以拦截目标对象的方法调用,并在方法执行前后执行切面逻辑。
Spring AOP 的拓展点包括以下几个关键组件:
1. 切面(Aspect):切面定义了在哪些连接点(Join Point)上执行什么样的切面逻辑。它使用切点(Pointcut)来定义连接点的匹配规则,并定义了一组通知(Advice)来描述在连接点上执行的逻辑。
2. 连接点(Join Point):连接点是程序中可以插入切面的点,通常是方法调用或方法执行。Spring AOP 支持方法级别的连接点。
3. 切点(Pointcut):切点是一个表达式,用于匹配连接点。它定义了哪些连接点会触发切面逻辑。
4. 通知(Advice):通知是切面在连接点上执行的逻辑。Spring AOP 支持多种类型的通知,如前置通知(Before Advice)、后置通知(After Advice)、环绕通知(Around Advice)等。
5. 代理对象(Proxy):代理对象是通过动态代理技术生成的,它包装了目标对象,并在方法调用时拦截并执行切面逻辑。
总结来说,Spring AOP 在 Spring 框架的核心拓展点中实现了动态代理,通过 AOP 的各个组件来定义和配置切面逻辑,并使用动态代理技术来创建代理对象,从而实现了对目标对象方法调用的拦截和增强。