概念

AOP(Aspect Oriented Programming),即面向切面编程,利用一种称为"横切"的技术,剖开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。

AOP开发术语

  • 连接点(Joinpoint):连接点是程序类中客观存在的方法,可被Spring拦截并切入内容。

  • 切入点(Pointcut):被Spring切入连接点。

  • 通知、增强(Advice):可以为切入点添加额外功能,分为:前置通知、后置通知、异常通知、环绕通知等。

  • 目标对象(Target):代理的目标对象

  • 引介(Introduction):一种特殊的增强,可在运行期为类动态添加Field和Method。

  • 织入(Weaving):把通知应用到具体的类,进而创建新的代理类的过程。

  • 代理(Proxy):被AOP织入通知后,产生的结果类。

  • 切面(Aspect):由切点和通知组成,将横切逻辑织入切面所指定的连接点中。

面向切面编程的作用

系统实现“高内聚、低耦合”一直是我们程序开发者的追求。AOP技术将软件系统划分成了核心关注点和横切关注点两部分,业务的核心功能则为核心关注点,与业务无关或者关系不大的则为横切关注点。

AOP技术的出现,将系统的核心关注点和横切关注点分离,避免了非核心业务耦合在核心业务中,降低了模块间的耦合度,提高了系统的可读性、可操作性和可维护性。

        AOP技术将与核心业务无关或者关系不大却为不同业务模块公用或者需要的逻辑抽取成新的模块,在需要的地方再引入,大大减少的系统的重复代码。

AOP-面向切面编程(Aspect Oriented Programming)相关推荐

  1. AOP面向切面编程在Android开发中的应用

    面向切面编程-Aspect Oriented Programming,简称AOP,通过预编译的方式和运行期间动态代理实现程序功能的统一维护的一种技术. AOP能够做什么呢? 性能检测 权限验证 释放资 ...

  2. java aop面向切面编程

    最近一直在学java的spring boot,一直没有弄明白aop面向切面编程是什么意思.看到一篇文章写得很清楚,终于弄明白了,原来跟python的装饰器一样的效果.http://www.cnblog ...

  3. 【AOP 面向切面编程】AOP 简介 ( AspectJ 简介 | AspectJ 下载 )

    文章目录 一.AOP 简介 二.AspectJ 简介 三.AspectJ 下载 一.AOP 简介 AOP 是 Aspect Oriented Programming 的缩写 , 面向切面编程 ; 利用 ...

  4. AOP(面向切面编程)大概了解一下

    前言 上一篇在聊MemoryCache的时候,用到了Autofac提供的拦截器进行面向切面编程,很明显能体会到其优势,既然涉及到了,那就趁热打铁,一起来探探面向切面编程. 正文 1. 概述 在软件业, ...

  5. python aop编程_学习笔记: AOP面向切面编程和C#多种实现

    AOP:面向切面编程   编程思想 OOP:一切皆对象,对象交互组成功能,功能叠加组成模块,模块叠加组成系统 类--砖头     系统--房子 类--细胞     系统--人 面向对象是非常适合做大型 ...

  6. spring中AOP(面向切面编程)

    spring中AOP(面向切面编程) 面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是spring框架中的一个重要内容 ...

  7. AOP—面向切面编程

    前言 上一篇在聊MemoryCache的时候,用到了Autofac提供的拦截器进行面向切面编程,很明显能体会到其优势,既然涉及到了,那就趁热打铁,一起来探探面向切面编程. 正文 概述 在软件业,AOP ...

  8. Spring AOP面向切面编程

    AOP面向切面编程: AOP(Aspect Oriented Programming),即面向切面编程,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公 ...

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

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

  10. JavaEE——Spring AOP(面向切面编程)

    目录 1.面向切面编程(AOP) 2.AOP术语 3.AOP类型 4.AOP 的优势 5.Spring AOP 的代理机制 6.Spring AOP 连接点 7.Spring AOP 通知类型 8.基 ...

最新文章

  1. defined 函数使用
  2. 细数非对称加密与对称加密的区别
  3. SAP创建基于Lead的OData服务,BO列表里只有一个Lead BO可选
  4. HTML,,,音乐,html embed用法
  5. Vue路由History模式分析
  6. 【华为云技术分享】云小课 | 容灾切换:业务一键切换到容灾站点
  7. 疯狂星期四,但是程序员
  8. Echarts迁徙图简单图片实现
  9. wps转html乱码,wps转换成word后乱码
  10. OpenGL VBO, PBO与FBO
  11. 猫耳FM导出音频转换为音频格式(m4a/mp3)
  12. [py练习] 人口增长的问题
  13. esp8266 OTA 云远程更新固件 wifiupdate
  14. RK3568平台开发系列讲解(安卓篇)WakeLock分析
  15. 初识JAVA:猜数字小游戏案例---系统产生一个1-100之间的随机数,猜出这个数是多少?
  16. Android中的Glide
  17. 转:石康 不奋斗的姑娘我不爱
  18. 程序员必备技术类微信公众号
  19. STM32H750(或743)核心电源Vcore使用外部开关电源SMPS
  20. three.js绘制波浪面_使用Three.js构建建筑物波浪动画

热门文章

  1. 俄罗斯17岁少年创办随机视频聊天网站走红网络
  2. 『HTML5梦幻之旅』 - 炫酷的节日贺卡
  3. JavaWeb+MySql实现简易商城系统
  4. 全球与中国隔音耳罩市场深度研究分析报告(2021)
  5. 可爱极了,用 CSS 实现一个超可爱的猫咪!
  6. 手机版的python如何编程_python编程入门app
  7. electron-log使用
  8. 印度医务工作者正努力打击WhatsApp上传播的虚假信息
  9. 超简单 超详细带你一键重装Win10系统
  10. 如何应对iOS系统升级?