Spring 中的 AOP
AOP 指的是面向切面编程
常用的场景是通过动态代理的对象,在原有的方法前后加上新的方法。
比如要在某个 service 的前后,增加日志功能。
可以写个类,实现 MethodBeforeAdvice
或 MethodAfterAdvice
然后在 xml 中定义切入点等配置,那么在执行对应的方法时,就会有方法“环绕”在其周围。
我们还可以通过注解实现 AOP ,这样比较易懂。
import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect //标注这个类是一个切面 public class AnnotationPointcut { @Before("execution(* com.kuang.service.UserServiceImpl.*(..))") public void before(){ System.out.println("=====方法执行前======"); } @After("execution(* com.kuang.service.UserServiceImpl.*(..))") public void after(){ System.out.println("=====方法执行后======"); } //在环绕增强中,我们可以给定一个参数,代表我们要获取处理切入的点; @Around("execution(* com.kuang.service.UserServiceImpl.*(..))") public void around(ProceedingJoinPoint jp) throws Throwable { System.out.println("环绕前"); object proceed = jp.proceed(); //执行方法System.out.print1n("环绕后"); //signature signature = jp.getsignature();//获得签名 //System.out.printLn( "signature : "+signature); //System.out.println(proceed); } }
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/16003424.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本