讲一下spring aop
时间: 2024-08-16 17:09:28 浏览: 47
小马哥讲 Spring AOP 编程思想 - API 线索图.pdf
Spring AOP(面向切面编程)是Spring框架的一个重要组成部分,它允许开发者将横切关注点(cross-cutting concerns),如日志、安全性和事务管理,与业务逻辑分离,从而提高模块化。
Spring AOP的核心概念包括以下几个方面:
1. 切面(Aspect):切面是一个可以定义横切关注点的模块,比如日志和事务管理。在Spring AOP中,切面是一个带有特定注解(@Aspect)的类。
2. 连接点(Join Point):连接点是在应用程序执行过程中插入切面的点,例如方法的调用或异常的抛出。Spring AOP只支持方法执行连接点,即只在方法执行时可以插入切面。
3. 切入点(Pointcut):切入点定义了在哪些连接点上应用切面的切面方法。切入点使用表达式来匹配特定的连接点,例如匹配带有特定注解的方法或特定包下的所有方法。
4. 通知(Advice):通知定义了切面在切点上执行的动作。Spring AOP提供了多种类型的通知,包括前置通知(Before)、后置通知(After)、返回后通知(After-returning)、异常后通知(After-throwing)和环绕通知(Around)。
5. 引入(Introduction):允许声明额外的方法或属性被应用于任何通知的类。
6. 织入(Weaving):织入是将切面和其他应用程序类型或对象连接起来,创建一个通知的对象的过程。在Spring AOP中,织入是在运行时进行的。
Spring AOP使用代理模式来实现AOP,这意味着它默认只对代理对象的方法调用进行拦截。因此,代理对象的方法调用会被拦截并执行相关的通知逻辑,然后才调用实际的方法。
阅读全文