AOP的概述

什么是AOP的技术?

Aspect Oriented Programming 的缩写 意为:面向切面编程。

AOP是一种编程范式,属于软件工程范畴。指导开发者如何组织程序结构。

利用AOP

  1. 可以对业务逻辑进行隔离
  2. 降低耦合度
  3. 提高程序的可重用性。
  4. 提高开发效率
AOP的优势
  1. 减少重复代码
  2. 提供开发的效率
  3. 维护方便
AOP的底层原理

AOP底层既是代理技术

  1. JDK动态代理 编写的程序必须要有接口
  2. cglib代理技术 生成类的子类

AOP专业术语

  1. Joinpoint(连接点) 所谓连接点是指那些被拦截到的点,在spring中指的是方法。因为spring只支持方法类型的连接点
  2. Pointcut(切入点) 所谓切入点是指我们要对那些Joinpoint(连接点)进行拦截的定义
  3. Advice(通知/增强) 通知是指拦截到Joinpoint(连接点)之后所要做的事情就是通知。通知分为:

    1. 前置通知
    2. 后置通知
    3. 异常通知
    4. 最终通知
    5. 环绕通知(切面要完成的功能)
  4. Target(目标对象) 代理的目标对象
  5. Weaving(织入) 是指把增强应用到目标对象来创建新的代理对象的过程
  6. Proxy(代理) 一个类被AOP织入增强后,就产生一个结果代理类
  7. Aspect(切面) 是切入点和通知的结合,需要自己填写和配置
何谓切面Aspect

切面 = Pointcut切入点 + Advice增强
类 = 编写配置文件 + 编写方法

教程详解
  1. 编写切面类
  2. 编写增强方法
  3. 配置Spring文件
最终通知 after

目标对象方法执行成功或者失败 都会增强类似finally

后置通知 after-returning

目标对象方法执行成功 才会增强

异常通知 after-throwing

目标对象方法执行失败 才会增强

环绕通知 around

自己决定增强的位置 如果使用了环绕通知,目标对象的方法默认不执行,需要手动执行目标方法

AOP Aspect Oriented Programming 面向切面编程 Spring相关推荐

  1. AOP Aspect Oriented Programming

    原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP将应用系统分为两部分,核心业务逻辑(Core bu ...

  2. SpringBoot—集成AOP详解(面向切面编程Aspect)

    关注微信公众号:CodingTechWork,一起学习进步. AOP介绍 AOP概述   AOP是Aspect-Oriented Programming,即为面向(切面)方面编程.在维基百科中的解释: ...

  3. xml的方式配置AOP:Aspect Oriented Programming

    在某些类中, 什么时机, 做什么事情  切入点(point-cut): 在某些类中(Class<?>[] itfc = new Class<?>[] { IStudentSer ...

  4. 一个简单的Spring的AOP例子(JAVA面向切面编程)

    公司要求分享技术,一个小组九个人,每周一个人,想想讲讲AOP吧,用处也挺大的,果断写了一个小例子,改了改也就成了.这是个简单AOP例子,包括前置通知,后置通知,环绕通知,和目标对象. 目标对象的接口: ...

  5. java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程

    AOP是一种与语言无关的程序思想.编程范式.项目业务逻辑中,将通用的模块以水平切割的方式进行分离统一处理,常用于日志.权限控制.异常处理等业务中. 快速导航 编程范式主要以下几大类 AOP(Aspec ...

  6. Springboot 一文搞懂AOP面向切面编程

    Springboot AOP面向切面编程 AOP简介 AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构. 作用:在不惊动原始设计的 ...

  7. 【字节码插桩】Android 打包流程 | Android 中的字节码操作方式 | AOP 面向切面编程 | APT 编译时技术

    文章目录 一.Android 中的 Java 源码打包流程 1.Java 源码打包流程 2.字符串常量池 二.Android 中的字节码操作方式 一.Android 中的 Java 源码打包流程 Ja ...

  8. java springboot aop_Spring Boot实战系列(3)AOP面向切面编程

    AOP是一种与语言无关的程序思想.编程范式.项目业务逻辑中,将通用的模块以水平切割的方式进行分离统一处理,常用于日志.权限控制.异常处理等业务中. 快速导航 编程范式主要以下几大类 AOP(Aspec ...

  9. iOS面向切面编程-AOP

    1. AOP简介 AOP: Aspect Oriented Programming 面向切面编程. 面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目 ...

最新文章

  1. ASP隐藏文件地址,并在下载时替换文件名
  2. WEB前端笔试题(4)
  3. 画活动图教程_二次元人物头发怎么画?画好头发有什么技巧?
  4. mysql重命名数据表称方式_在MySQL中,使用()重命名数据表。_学小易找答案
  5. oracle tovarchar2_oracle数据库中varchar2陷阱
  6. WEB OS + WEB IM(续)
  7. 阿里工程师手把手教你设计 B 端垂类营销中心!
  8. Speak a Good Word for SB
  9. arduino智能浇花系统_自动浇花套件
  10. 【大数据部落】用关联规则和聚类探索药物配伍规律
  11. c++数据格式化输出/字符串复制/字符串比较
  12. NLP实践——Few-shot事件抽取《Building an Event Extractor with Only a Few Examples》
  13. 使用CSS打造很有亲和力的各种web2.0操作提示效果 使用CSS打造很有亲和力的各种web2.0操作提示效果
  14. cocos creator实例--FlappyBird游戏的分析
  15. python立方根求解_python – 如何获得立方根的整数?
  16. python 抽奖 完全公平的随机数算法_抽奖 随机数
  17. 如果我写一个开源的HIS软件
  18. vue解决-4048报错
  19. Java图书馆管理系统毕业设计、JAVA图书借阅系统设计与实现 毕设作品参考
  20. 趣味seo-网站被搜索引擎降权恢复的六大诀窍

热门文章

  1. 208.实现Trie(前缀树)
  2. 人工智障学习笔记——机器学习(16)降维小结
  3. C/C++——C风格的字符串的指针指向的内存位置问题(易错)
  4. 【今日CV 视觉论文速览】05 Dec 2018
  5. sqlserver无法连接到服务器的常见原因和解决办法
  6. 结业考试笔记 2014中超联赛项目笔记 0327
  7. 字节流写数据搭配异常处理
  8. pip修改下载源为国内源 linux系统
  9. django-模型类管理器-create方法-models属性
  10. jquery-幻灯片的移动分析