AOP 简介

AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming, 面向对象编程) 的补充.

AOP 的主要编程对象是切面(aspect), 而切面模块化横切关注点.

在应用 AOP 编程时, 仍然需要定义公共功能, 但可以明确的定义这个功能在哪里, 以什么方式应用, 并且不必修改受影响的类. 这样一来横切关注点就被模块化到特殊的对象(切面)里.

AOP 的好处:

每个事物逻辑位于一个位置, 代码不分散, 便于维护和升级

业务模块更简洁, 只包含核心业务代码.

AOP

AOP 术语

切面(Aspect):  横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象

通知(Advice):  切面必须要完成的工作

目标(Target): 被通知的对象

代理(Proxy): 向目标对象应用通知之后创建的对象

连接点(Joinpoint):程序执行的某个特定位置:如类某个方法调用前、调用后、方法抛出异常后等。连接点由两个信息确定:方法表示的程序执行点;相对点表示的方位。例如 ArithmethicCalculator#add() 方法执行前的连接点,执行点为 ArithmethicCalculator#add(); 方位为该方法执行前的位置

切点(pointcut):每个类都拥有多个连接点:例如 ArithmethicCalculator 的所有方法实际上都是连接点,即连接点是程序类中客观存在的事务AOP 通过切点定位到特定的连接点。类比:连接点相当于数据库中的记录,切点相当于查询条件。切点和连接点不是一对一的关系,一个切点匹配多个连接点,切点通过 org.springframework.aop.Pointcut 接口进行描述,它使用类和方法作为连接点的查询条件。

Spring  AOP

AspectJ:Java 社区里最完整最流行的 AOP 框架.

在 Spring2.0 以上版本中, 可以使用基于 AspectJ 注解或基于 XML 配置的 AOP

SpringAOP概念相关推荐

  1. Spring-AOP概念及使用教程

    Spring-AOP 1.AOP 基本概念 ​ (1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发 ...

  2. SpringAOP原理及应用

    SpringAOP原理及应用 一.背景 什么是AOP,英文直译是Aspect-OrientedProgramming,面向方面编程.从名字也可以看出,如果把我们代码的执行过程看成一条圆柱体,AOP就是 ...

  3. springAOP面向切面编程以及对事务的支持

    目录 一.springAOP 面向切面编程 (一)springAOP概念解析 (二)springAOP的XML文件配置 1.入门案例 2.AOP的工作流程 3.通知类型 4.切点表达式 5.配置所有通 ...

  4. 总结:SpringAOP(一、概念和代理)

    Spring core模块 :Spring的核心功能,主要是IOC容器,解决对象的创建和处理对象的依赖关系. Spring web模块:spring对web框架的整合的支持. Spring Aop模块 ...

  5. Spring事务管理 与 SpringAOP

    1,Spring事务的核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具体策略.  ...

  6. Spring-AOP 基于Schema配置切面

    概述 简单切面配置实例 示例 配置命名切点 示例 各种增强类型的配置 示例 绑定连接点信息 Advisor配置 概述 如果项目不能使用Java5.0, 那么就无法使用基于@AspectJ注解的切面. ...

  7. Spring-AOP 切点/切面类型和创建切面

    概述 静态方法匹配器 动态方法匹配器 六种切点类型 静态方法切点StaticMethodMatcherPointcut 动态方法切点DynamicMethodMatcher 注解切点Annotatio ...

  8. Spring AOP(一) AOP基本概念

    Spring AOP 基本概念 术语 容易理解 举个栗子给大家讲一下代理: 什么是AOP? 基本术语 (1)切面(Aspect) (2) 目标对象(Target) (3) 连接点(JoinPoint) ...

  9. java 切面获取参数_每天分享一点Java知识(spring-aop)

    每天分享一点Java知识,码字不易,喜欢的可以关注一波,共同学习.20191127 本篇将详细讲解SpringAOP的概念以及如何实现. 1. 何为AOP AOP:面向切面编程,相对于OOP面向对象编 ...

最新文章

  1. 【Qt】设置窗口透明度
  2. 特征选择之嵌入法、嵌入法、排列重要性
  3. CF385C Bear and Prime Numbers
  4. 【深度学习】CVPR 2021 全部论文链接公布!最新1660篇论文合集!附下载链接
  5. R语言中strptime返回值永远为NA的问题
  6. 【软件测试】结构化分支和循环语句的白盒测试
  7. Java笔记-AnnotationConfigApplicationContext在Spring中的例子
  8. python为什么用class_python为什么会有@classmethod?
  9. Python提取Word文档中所有超链接地址和文本
  10. Java 集合系列:Vector源码深入解析
  11. 程序设计基础(C语言)教学案例-序言
  12. python的作用域分别有几种_Python中作用域的深入讲解
  13. sublime双击选中$
  14. Pdfminer 分析
  15. Python实现借助聚合数据API接口生成某一年的节假日对照表
  16. 公路路基路面回弹弯沉检测技术(转载)
  17. RandomAccess接口使用
  18. 网狐卓越版本内核引擎、卓越内核(源码,源码,源码)
  19. 【OR】YALMIP Sum of squares(SOS)规划
  20. 乐鑫科技2021提前批软件类笔试题

热门文章

  1. 简单的实现图片预览, 通过原生ajax以及 jQuery两种方法实现图片预览,有更好的办法可以留言喔...................
  2. 用Express、MySQL搭建项目(接口以及静态文件获取、文件上传等)
  3. Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列
  4. linux下vi的一些简单的操作
  5. SpringMVC(十一) RequestMapping获取Cookie值
  6. 面试时经常问到的系统应用优化问题总结
  7. C#实现RSA加密和解密详解
  8. VirtualBox 安装失败的主要原因 不是正版的OS,系统主题需要还原
  9. 用java分组查elasticsearch
  10. http-helloworld