Spring AOP

本文介绍了面向切面编程(AOP)的基本概念,包括切面、通知类型如前置、后置等,以及切点和连接点的概念。同时,还讨论了织入过程及Spring框架下实现AOP的四种主要方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向切面编程
切面:就是在一个怎么样的环境中工作,数据库的事务直接贯穿了整个代码层面,这就是一个切面。它能够在被代理对象的方法之前,之后,产生异常或者正常返回后切入你的代码,甚至代替原来被代理对象的方法,在动态代理中可以把它理解为一个拦截器。

通知:切面开启后,切面的方法。
前置通知(before)
后置通知(after)
返回通知(afterReturning)
异常通知(afterThrowing)
环绕通知(aroundThrowing)

切点:
在动态代理中,被切面拦截的方法就是一个切点,切面可以将其切点和被拦截的方法按照一定的逻辑织入到约定流程中。

连接点
连接点是一个判断条件,由它可以指定哪些是切点。对于指定的切点,Spring会生成代理对象去使用对应的切面对其拦截,否则就不会拦截它。

织入
织入是一个生成动态代理的过程。

实际代理的方法分为静态代理和动态代理。静态代理是在编译class文件时生成的代码逻辑,但是在Spring中并不使用这样的方式。
而是运行期动态生成代理对象。

Spring中有4中方式实现AOP的拦截功能
使用ProxyFactoryBean和对应的接口实现AOP
使用XML配置AOP
使用@AspectJ注解驱动切面
使用AspectJ注入切面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值