基于接口的动态代理要求,要去被代理对象最少实现一个接口
基于子类的动态代理没有实现接口的要求。但是要求我们的被代理类不能是最终类

在Spring中可以选择基于接口还是子类的动态代理

术语

大白话。业务层看到方法就都是连接点。IAccountService中的方法。它是连接什么的呢? 连接我们的业务和增强方法中的那个点。
那么如何把增强的代码也就是事物控制的代码加到我们的业务中来

这些方法可以加上事物的支持。从而让我们的业务方法,形成完整的业务逻辑

PointCut切入点


在业务层中新写一个方法

创建动态代理的时候,不区分哪个方法全部加了事物

写上代码判断,当方法是test的时候,直接return 返回。这样不是业务层的所有方法都被事务支持了。test方法就没有事务的支持

切入点就是被增强的方法。那么test方法没有被增强就不是切入点。
test()方法是连接点。

所有的切入点都是连接点。但所有的连接点不一定都是切入点

advice增强


通知就是拦截到之后要干的事情
invoke方法拦截到后,提供了事物的支持

TansactionManager就是通知。拦截到之后,就是对它进行事物的支持

通知分为这种类型

方法之后的就是后置通知,在catch里面的就是异常通知。finally里面的就是最终通知。

Introducation引介

现阶段用不到,作为了解即可

target目标对象

就是被代理对象

accountService就是被代理对象

weaving织入


原有的Service没法实现事务的支持

于是用了动态代理技术。创建了一个新的对象,返回了一个代理对象。

在返回代理对象的时候 从中加入了事务的支持。加入事物支持的过程叫做织入

proxy代理


retunr 创建出来的这个对象就是proxy

Aspect切面


切入点就是这里哪些方法被增强过

通知就是提供了公共代码的类

公共代码什么时候去执行呢?
建立接入点方法和通知方法再执行调用的对应关系。就是切面。

配置他们之间的对应关系,哪个Service。哪些方法,这些方法何时执行。整个的过程配置出来 就是切面。

明确的事情

转载于:https://www.cnblogs.com/wangjunwei/p/11354836.html

阶段3 2.Spring_08.面向切面编程 AOP_2 spring中的aop术语和细节相关推荐

  1. AOP面向切面编程在Android中的使用

    GitHub地址(欢迎下载完整Demo) https://github.com/ganchuanpu/AOPDemo 项目需求描述 我想类似于这样的个人中心的界面,大家都不会陌生吧.那几个有箭头的地方 ...

  2. Spring 面向切面编程 第3关:AOP实现原理-JDK动态代理

    目录 任务描述 相关知识 代理模式(Proxy) AOP实现的两种方式 JDK动态代理步骤 案例模拟AOP实现 代理类说明 编程要求 测试说明 参考代码 任务描述 我们知道,Spring AOP的主要 ...

  3. Spring 面向切面编程 第4关:AOP实现原理-CgLib动态代理

    目录 任务描述 相关知识 代理模式(Proxy) AOP实现的两种方式 CGLIB动态代理步骤 模拟AOP实现 代理类说明 编程要求 测试说明 参考代码 任务描述 我们知道,Spring AOP的主要 ...

  4. Spring AOP 面向切面编程相关注解

    Aspect Oriented Programming 面向切面编程 在Spring中使用这些面向切面相关的注解可以结合使用aspectJ,aspectJ是专门搞动态代理技术的,所以比较专业. 需要在 ...

  5. Spring-学习笔记08【面向切面编程AOP】

    Java后端 学习路线 笔记汇总表[黑马程序员] Spring-学习笔记01[Spring框架简介][day01] Spring-学习笔记02[程序间耦合] Spring-学习笔记03[Spring的 ...

  6. AOP (面向切面编程)

    AOP (面向切面编程) 编辑 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AO ...

  7. MVC过滤器详解 面向切面编程(AOP)

    面向切面编程:Aspect Oriented Programming(AOP),面向切面编程,是一个比较热门的话题.AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个 ...

  8. Spring AOP——Spring 中面向切面编程

    前面两篇文章记录了 Spring IOC 的相关知识,本文记录 Spring 中的另一特性 AOP 相关知识. 部分参考资料: <Spring实战(第4版)> <轻量级 JavaEE ...

  9. Spring(4)——面向切面编程(AOP模块)

    Spring AOP 简介 如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用. AOP 即 Aspect Orien ...

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

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

最新文章

  1. iOS开发UI篇—UITableviewcell的性能优化和缓存机制
  2. Dubbo 源码分析 - 集群容错之 LoadBalance
  3. Python爬虫介绍及实战入门
  4. DataGrip 2019.2.5 —— MySQL数据表迁移到SQL Server数据表解决方案
  5. 【Java】使用springboot框架中的注解@ManyToOne遇到的坑
  6. Leetcode每日一题:169.majority-element(多数元素)
  7. Java Web应用实现GZIP压缩传输
  8. DateTime相关知识
  9. 开发环境和运行环境_内网安全运行环境
  10. 生信学习—Biostar课程3、4安装使用Entrez Direct和SRA toolkit
  11. RO-data、RW-data、ZI-data的解释
  12. 最优化理论——罚函数法·乘子法
  13. 给儿子的一封信——大学才是人生真正的起点
  14. 【转】浅谈C# 多态的法力
  15. poj1144 - tarjan求割点
  16. Kafka的版本号说明
  17. prefetch()
  18. “湘见”技术沙龙 | 程序员CSDN的进阶之路
  19. js插件的经典写法与总结
  20. java script error_java script error 错误解决方法

热门文章

  1. 华为荣耀9x怎么解账户锁_跟华为毫无关系的荣耀为何不值得买?
  2. 拓端tecdat|matlab测量计算信号的相似度
  3. 【大数据部落】(数据挖掘)如何用大数据做用户异常行为分析
  4. golang protobuf 动态消息获取_干货|Golang拦截器的一种实现
  5. matlab 矩阵动态,matlab – 如何以块为单位动态重塑矩阵?
  6. java日历制作日期不对_在我的代码中,为什么Java日期或日历中的月份日期不同? - java...
  7. java获取数据库列的别名_java – JDBC ResultSet获取具有表别名的列
  8. Ubuntu 查看 Cuda 及 版本
  9. python求解矩阵搜索问题,矩阵中每一行和第一列都是递增的 给定一个元素查找矩阵中是否存在该元素
  10. python如何将数组里的数提取出来_python – 从数组数组中提取数组