对于AOP的个人理解

AOP

一、概念

  • AOP:面向切面编程/面向切片编程

与OOP不同,AOP是面向切面的编程,这个概念比OOP抽象许多,在看了网课教程和部分博客后,我认为可以把它与代理紧密相连。将程序中共有的代码实现抽取出来,使用动态代理,不用更改原来的方法,实现对方法的增强。

所以什么是切面呢?切面在AOP中定义是切入点和通知的结合,织入。这里又涉及了另外两个新词汇,切入点和通知。

  • 连接点:类中的方法
  • 切入点:类中需要被增强的方法
  • 通知:为了增强类添加的功能
  • 切面:切入点加入到通知中组成切面

这么说下了,切面这个概念还是很抽象,下面我会用通俗的说法来介绍我的理解

二、切面的通俗理解

  1. 我开发了一个项目,用于查询成绩,当然你还可以查询别人的成绩。随后我利用爬虫对接了学校的接口,实现了查询成绩前需登陆学校账号的功能。后来,我还想知道哪些人使用过查询成绩的功能,所以我需要添加一个记录日志的功能,当有人登陆后,我会记录她登陆的学号。
  2. 在不改变原有service层登陆方法的前提下,我利用AOP的方式,使用代理来增强我原有的代码,最终需要做到学生登陆,服务器记录学号,这样一个日志+登陆系统就是一个切面,我们要面向它来编写相关业务
  3. 在执行登陆前,我们不需要干什么,于是没有前置通知。登陆成功后,系统记录学号到文件中,该功能为后置通知。若密码错误或者学号不存在等因素造成登陆失败,系统返回错误信息,不记录,此为异常通知。最终我们都要告知学生登陆是否成功的消息,此为最终通知。
  4. 这样,既实现了登陆又完成了记录,面向日志+登陆的切面编程就实现了

三、小结

以上内容纯属个人的初级理解,和AOP实际的理解偏差较大,仅供参考!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值