AOP入门

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

以下内容纯属作者个人见解,写的不好,还请见谅。 未经作者授权,禁止转载

1.什么是AOP?

aop又称面向切面编程,是由是施乐公司帕洛阿尔托研究中心(Xerox PARC)在上世纪90年代发明的一种编程范式也就是说它并不是一段特定的代码,或者某个包,它更多的是一种思想, 简单点来说就是如果你想吃有鸡蛋的三明治,那么你需要将鸡蛋放入三明治当中,那么在这个过程中,三明治就是一个切面。而鸡蛋可以比作你想要扩展的代码。

2.AOP的好处

学过三层架构的朋友都知道,如果我们此时需要去加一些比如日志啊,事务这些扩展功能时。我们只能去原有的代码里面修改,完全违背了开闭原则,而aop的存在则完美的解决了这个问题,这就是aop的好处之一,非侵入式。并且aop让原本零散的代码分散到了一个个的类中去,大大的降低了代码结构的复杂度。并且在分散代码的同时,也增加了代码的重复性,降低了耦合度。使得开发人员能够动态地将代码切入到类的指定方法

3.AOP专业术语

切入点(Pointcut):通俗来讲就是指明所需连接点的程序构造,即你要切入的方法

@pointcut 关键字表明是一个命名的切入点声明,
pointcut() 是切入点的名字 execution(public *
"execution(* Service.UserService.*(…))"捕获所需要的连接点。

  @Pointcut("execution(* Service.UserService.*(..))")
    public void pointcut(){}

连接点(Join Point)与切入点匹配的执行点。

切面(Aspect)说白了就是一个类,是通知和切入点的结合。

目标对象(Target object) 你要扩展功能的类

AOP代理(AOP proxy) aop的底层实现原理

织入(Weaving)实现aop的过程

通知(Advice)通知指定当到达特定切入点处应该执行的方法

总结

AOP技术使得需要编写的代码量大大缩减,节省了时间,控制了开发成本。同时也使得开发人员可以集中关注于系统的核心商业逻辑。此外,它更利于创建松散耦合、可复用与可扩展的大型软件系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值