目录

1. 什么是AOP?

2. 实现AOP技术的框架有哪些?

2.1 Spring框架中的AOP技术

2.2 Aspectj框架

2.3 小结

3. Aspectj框架中的使用AOP的方式

4. Aspectj框架中使用aop时候的一些术语

5. AOP中的注解的详细解释

5.1 @Aspect

5.2  @Before

5.3 @AfterReturning

5.4 @Around

5.5 @AfterThrowing

5.6 @After

5.7 @PointCut


1. 什么是AOP?

答:AOP即面向切面编程,是Aspect Orient Programming,本质上是对动态代理步骤的规范化。

2. 实现AOP技术的框架有哪些?

  • Spring框架
  • Aspectj框架

2.1 Spring框架中的AOP技术

Spring主要在事务处理的时候使用AOP,但是在实际项目开发中,由于Spring自身实现的AOP技术过于笨重,所以我们也用的很少。

2.2 Aspectj框架

首先Aspectj是一个专门做AOP的框架,因此它就显得更专业,用的更广泛,Aspectj框架是Eclipse的一个开源项目。

2.3 小结

因此我们在开发的时候,虽然使用的是Spring框架,但是我们却是在Spring框架中集成的是Aspectj框架的AOP技术,因此我们记得要在Spring的pom文件中添加spring-aspectj依赖。

3. Aspectj框架中的使用AOP的方式

  • XML配置文件的方式(常用于事务)
  • 注解的方式(常用)

4. Aspectj框架中使用aop时候的一些术语

切面:我们要给原始的方法重增加的一个新的方法,这个新增加的方法就叫做切面,比如我们给已有的方法增加日志,事务等功能;此时这个日志方法,事务方法就叫做切面。

JoinPot:即连接点,它是目标类中的一个方法,其实就是最原始的方法,谁被添加新的方法,谁就是连接点。

PoinCut:即切入点,即目标类中的所有方法。

Advice:也叫做“通知”,“增强”,(这里是重点,共有5个注解)

切面的执行位置:即对目标类中的那些方法进行增强,这里会使用切面表达式。(重点)。

5. AOP中的注解的详细解释

5.1 @Aspect

5.2  @Before

5.3 @AfterReturning

5.4 @Around

5.5 @AfterThrowing

5.6 @After

5.7 @PointCut

 总结:

以上就是Spring框架中的AOP技术最核心常用的内容,可以很清楚的看到,使用了AOP之后,我们对动态代理的规范化更加的标准,但是这也要求你对最原始的JDK动态代理要有更深的认识.

Spring框架中的核心技术之AOP相关推荐

  1. Spring框架中常用的设计模式详解

    一.浅谈控制反转(IOC)与依赖注入(DI) IOC(Inversion of Control)是Spring中一个非常重要的概念,它不是什么技术,而是一种解耦的设计思想.它主要的额目的是借助于第三方 ...

  2. Spring框架中的设计模式(一)

    设计模式有助于遵循良好的编程实践.作为最流行的Web框架之一的Spring框架也使用其中的一些. 本文将介绍Spring Framework中使用的设计模式.这是5篇专题文章的第一部分.这次我们将发现 ...

  3. 在Spring 框架中如何更有效的使用JDBC?

    使用Spring JDBC 框架,资源管理以及错误处理的代价都会减轻.开发人员只需通过statements 和queries 语句从数据库中存取数据.Spring 框架中通过使用模板类能更有效的使用J ...

  4. 在Spring框架中使用SQL存储过程

    Spring框架也支持对SQL存储过程的调用,SQL存储过程是一组预先定义好的SQL语句,并存储到数据库管理系统中,外部程序可以直接调用执行.本课主要讨论在Spring框架中应用程序如何调用MySQL ...

  5. 理解Spring框架中Bean的作用域

    本篇介绍Spring Bean实例的作用范围,Spring Bean实例的作用范围由配置项scope限定.通过本篇的学习,可以达成如下目标. ● 应用scope配置项配置Bean的作用域 ● 应用单例 ...

  6. Spring框架中的控制反转和依赖注入

    控制反转: 控制反转是用来降低代码之间的耦合度的,基本思想就是借助"第三方"实现具有依赖对象的解耦. 为什么需要控制反转,因为项目中对象或多或少存在耦合.控制反转的关键在于Ioc容 ...

  7. Spring框架中提取list集合类型属性注入

    提取list集合类型属性注入 前言 引入名称空间 编写`xml`配置文件 运行结果 前言 对于某一个类型属性通用性较高的情况下,可以单独的提取出来,给需要的bean进行引用. 有关类的创建见<S ...

  8. Spring框架中集合属性为对象的注入方法

    Spring框架中集合属性为对象的注入方法 前言 创建基础类 创建`Course`类 编写XML配置文件 创建测试类 执行结果 前言 在集合的属性注入中,如果注入属性为普通类型(String.int) ...

  9. Spring框架中XML配置文件注入集合(数组、LIST、MAP、SET)属性

    Spring框架中XML配置文件注入集合属性 前言 创建测试类与属性 配置XML配置文件 建立调用类 调用结果 前言 某些类的属性是可能是集合,包括:数组.LIST.MAP.SET等集合,在Sprin ...

最新文章

  1. 下一代汽车的核心竞争力到底是什么?
  2. 【BZOJ2662】【BeiJing wc2012】冻结 分层图 裸的!
  3. [转]MacBook Pro上装三系统 OS X、Ubuntu、Win 7
  4. 2015-03-17 how is task transaction type retrieved
  5. 小微型计算机期刊,小型微型计算机系统杂志
  6. ubuntu之搭建http服务器apache2
  7. Kruskal算法:贪心+并查集=最小生成树
  8. [置顶]       jBPM4工作流开发实战 之 第二部分 jBPM4开发入门
  9. mybatis中关联关系,一对多,一对一,多对多,数据库建立方式,怎么体现这种逻辑关系,嵌套查询,嵌套结果查询,包含测试
  10. Oracle之同义词(SYNONYM)
  11. 万能的json格式化
  12. 微软宣布 IE 浏览器将于 6 月 16 日正式退役,你对它有哪些回忆?
  13. React 兼容IE8 项目
  14. 开发者讨厌图形界面吗_为什么这么多开发人员讨厌招聘人员
  15. OpenGL中的glut、glew、 gles、egl
  16. Python之Request模块学习
  17. 深入理解 Android 卷I - 第8章 深入理解Surface系统
  18. Yolov3参数理解
  19. 华为海思麒麟920处理器是怎么做到性能与功耗的平衡的
  20. 手机桌面上没有计算机,桌面上我的电脑图标没了怎么办

热门文章

  1. 如何进行ERP选型了解篇(一)
  2. VLANTrunk技术
  3. 晶体管的 栅极gate 材料选用 多晶硅polysilicon,并采用 自对准工艺 self-aligned IC后端版图 【VLSI】
  4. Your password has expired的解决办法
  5. npm update 升级版本
  6. 【前端系列教程之JavaScript】15_JavaScript面向对象编程
  7. Opencv实现纵横比保持的图像缩放
  8. 蓝桥杯-——罗马数字的暴力破解
  9. 蓝桥杯题目-报时助手
  10. mysql 带宽测试_网络带宽如何影响 MySQL 性能