什么是AOP

全称是 Aspect Oriented Programming 即:面向切面编程。是OOP的延续,也是Spring框架中的一个重要内容,是函数式编程的一种衍生泛型。简单的说他就是把我们程序重复的代码抽取出来,在需要执行的时候使用动态代理技术在不修改源码的基础上,对我们的已有方法进行增强。

AOP能干什么

举个例子,你想给你的网站记录用户访问日志:
对某些url,是不用记录的,而有些是需要记录的
如果你依然使用OOP,面向对象,
那你只能在那些url对应的Controller代码里面,一个一个写上日志记录的代码
而如果你使用了AOP呢?
无需在控制类添加代码,直接添加一个日志类,来进行无侵入式通过切面来记录日志。

AOP有什么优点

1、减少重复代码
2、提高开发效率
3、维护方便

AOP 相关术语

Joinpoint(连接点):

所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为 spring 只支持方法类型的
连接点。

Pointcut(切入点):

所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。

Advice(通知/增强):

所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。
通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。

Introduction(引介):

引介是一种特殊的通知在不修改类代码的前提下, Introduction 可以在运行期为类动态地添加一些方
法或 Field。

Target(目标对象):

代理的目标对象。

Weaving(织入):

是指把增强应用到目标对象来创建新的代理对象的过程。
spring 采用动态代理织入,而 AspectJ 采用编译期织入和类装载期织入。

Proxy(代理):

一个类被 AOP 织入增强后,就产生一个结果代理类。

Aspect(切面):

是切入点和通知(引介)的结合。

什么是AOP,AOP能干什么,有什么优点相关推荐

  1. 动态代理——》AOP —— Spring 中的 AOP||AOP 相关术语||学习 spring 中的 AOP 要明确的事

    AOP 概述 什么是 AOP       AOP:全称是 Aspect Oriented Programming 即:面向切面编程 AOP 的作用及优势 作用: 在程序运行期间,不修改源码对已有方法进 ...

  2. Spring 学习——Spring AOP——AOP配置篇Advice(有参数传递)

    声明通知Advice 配置方式(以前置通知为例子) 方式一 <aop:config> <aop:aspect id="ikAspectAop" ref=" ...

  3. 什么是AOP? AOP .Net 框架,AOP 资源

    如果说面向对象编程是关注将需求功能划分为不同的并且相对独立,封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系的话:那么面向方面编程则是希望能够将通用需求功能从不相关的类当中分 ...

  4. 什么是AOP,AOP的优点是什么?

    AOP(Aspect oriented Propramming)即面向切面编程,它的作用主要是改变了OOP(Object Oriented Programming)面向对象编程的不足.

  5. spring --AOP

    在说AOP之前,先来看看切片面包,我们是把面包看成一个对象,而如果想在面包中间夹点番茄酱或者其他什么东西怎么办呢,是不是需要把面包切片,在每一片都要夹点东西,在编程中给对象重复性 执行某一动作是不是特 ...

  6. 10天手敲一个SpringBoot网上商城项目(九)—— 确认订单、创建订单功能的实现及AOP

    静态资源及sql文件分享 链接:https://pan.baidu.com/s/1X-yjmQcPD3PqS21x0HplNA?pwd=23gr 提取码:23gr 文章目录 确认订单 1.确认订单-持 ...

  7. 深入理解Spring IOC和AOP

    文章目录 1. 什么是 Spring 框架? 1.1Spring简介 1.2Spring的好处 1.3Spring体系结构 2.理解Spring IoC 2.1IoC简介 2.2IoC的好处 2.3依 ...

  8. 【Spring】面向切面编程AOP

    AOP基础 什么是AOP [废话解释]在软件业,AOP全称Aspect Oriented Programming 即:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AO ...

  9. Spring框架系列之AOP思想

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.AOP概述 (1).什么是 AOP AOP 为 Aspect Oriented Progra ...

  10. Spring Aop的应用

    2019独角兽企业重金招聘Python工程师标准>>> AOP的基本概念 连接点( Jointpoint) : 表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化.方法执行 ...

最新文章

  1. React router 的 Route 中 component 和 render 属性理解
  2. NodeJS API Process全局对象
  3. webstorm设置注释颜色_简单5步了解相关矩阵的注释热图
  4. UDP 组播---你需要了解这些
  5. 卷积神经网络(CNN)模型结构
  6. php代码文本型怎么更改成数值型,php 怎么将字符转成数字
  7. jquery.timers使用说明
  8. [MyBatisPlus]常用注解_@TableName_@TableId_@TableField_@TableLogic通过全局配置配置主键生成策略
  9. 工作406- Error:Node Sass version 5.0.0 is incompatible with ^4.0.0 问题解决
  10. 方格取数(信息学奥赛一本通-T1277)
  11. 宕机日志怎么看 thread detail_如何快速过滤出一次请求的所有日志?
  12. 【Python 04】Python开发环境概述
  13. 刷屏!边学边用,这个学Python方法彻底火了!
  14. 十、基于FPGA的PCIE协议介绍(二)
  15. 《终极算法》读书笔记(一)机器学习革命
  16. 【Mybatis学习】Mybatis 缓存
  17. SQL Server表空间碎片化回收
  18. 7620a无线中继模块(wisp)
  19. GIMP 2.10.24 图片切片
  20. 使用 COLOR THIEF 获取图片主色,实现图片渐变遮罩,颜色填充等

热门文章

  1. 环回接口(loopback interface)
  2. 玫瑰李文案:玫瑰李水果店的文案怎么写
  3. 九部比《五十度灰》更血脉喷张的电影,个个看完都会让人欲罢不能!
  4. JAVA扫雷小游戏(待改进)
  5. 注意!这些行业已经在使用智能语音机器人做销售啦!
  6. 浅谈软件设计的七大原则
  7. SQLserver数据字段详情
  8. 基于javaweb计算机组成原理远程教育平台研究与开发
  9. 多闪遭起诉:头条与腾讯社交战争升级背后的难隐之痛
  10. 一个小程序员年薪五万的悲哀生活和他的理财梦