1.Aspect

  横切在多个类的一个关注点,在Spring AOP中,aspect实现是一个规则的类或@Aspect标注的规则类。例如:事务管理

2.Join point

  程序执行过程中的一个点,例如:执行一个方法或处理一个异常,在Spring AOP中,一个连接点表示一个方法执行执行

3.Advice

  在一个特定的连接点上所采取的动作,类型包括around,before,after等,Spring中 advice就是一个interceptor模式,包括around连接点的interceptor链

4.Pointcut

  切点,匹配连接点(join points),跟Advice相关,连接点就是切点表达式匹配出来的,Spring默认使用AspectJ切点表达式

5.Introduction

  声明一个类型的其他方法或字段,Spring AOP允许引入新接口(和对应的实现)的任意advised对象

6.Target object

  由一个或多个切面advised对象,从SpringAOP实现代理运行开始,这个对象一直是一个代理对象

7.AOP proxy

  AOP框架创建的对象,该对象实现了aspect规则(advise 方法执行等),在Spring框架中,一个AOP代理就是一个JDK动态代理或CGLIB代理

8.Weaving

  连接aspect和其他应用类型或对象而创建的advised 对象,它可以运行在编译时,载入时或运行时,Spring AOP在运行时执行织入操作

9.Advice 类型

Before advice:在连接点之前执行,它无法阻止AOP执行连接点(除非抛出异常)

After returning advice: 在一个连接点正常完成后执行,例如,一个方法正常返回值且未抛出异常

After throwing advice:如果一个方法因抛出异常而退出,这时就会执行该Advice

After (finally) advice: 无论方法是正常返回还是抛出异常都会执行该Advice

Around advice: 在方法before之前和after之后执行该Advice,它也可以决定是否继续向后执行或返回自定义值或抛出异常

10.AOP代理

Spring AOP默认使用标准的J2SE动态代理,它可以代理任意接口。也可以使用CGLIB代理,当一个业务对象不实现接口的情况下,默认使用CGLIB代理,但建议使用面向接口编程。

Spring AOP学习笔记(1)-概念的更多相关文章

  1. Spring AOP学习笔记01:AOP概述

    1. AOP概述 软件开发一直在寻求更加高效.更易维护甚至更易扩展的方式.为了提高开发效率,我们对开发使用的语言进行抽象,走过了从汇编时代到现在各种高级语言繁盛之时期:为了便于维护和扩展,我们对某些相 ...

  2. Spring AOP学习笔记02:如何开启AOP

    上文简要总结了一些AOP的基本概念,并在此基础上叙述了Spring AOP的基本原理,并且辅以一个简单例子帮助理解.从本文开始,我们要开始深入到源码层面来一探Spring AOP魔法的原理了. 要使用 ...

  3. Spring AOP学习笔记03:AOP的核心实现之获取增强器

    上文讲了spring是如何开启AOP的,简单点说就是将AnnotationAwareAspectJAutoProxyCreator这个类注册到容器中,因为这个类最终实现了BeanPostProcess ...

  4. Spring AOP学习笔记05:AOP失效的罪因

    前面的文章中我们介绍了Spring AOP的简单使用,并从源码的角度学习了其底层的实现原理,有了这些基础之后,本文来讨论一下Spring AOP失效的问题,这个问题可能我们在平时工作中或多或少也会碰到 ...

  5. Spring AOP学习笔记

      Spring提供了一站式解决方案:          1) Spring Core  spring的核心功能: IOC容器, 解决对象创建及依赖关系          2) Spring Web ...

  6. Spring AOP学习笔记04:AOP核心实现之创建代理

    上文中,我们分析了对所有增强器的获取以及获取匹配的增强器,在本文中我们就来分析一下Spring AOP中另一部分核心逻辑--代理的创建.这部分逻辑的入口是在wrapIfNecessary()方法中紧接 ...

  7. Spring入门IOC和AOP学习笔记

    Spring入门IOC和AOP学习笔记 概述 Spring框架的核心有两个: Spring容器作为超级大工厂,负责管理.创建所有的Java对象,这些Java对象被称为Bean. Spring容器管理容 ...

  8. 【转】Spring.NET学习笔记——目录

    目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...

  9. Spring.NET学习笔记——目录(原)

    目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...

随机推荐

  1. spring 配置参数从配置文件中加载到PropertiesFactoryBean 和配置参数从数据库加载到PropertiesFactoryBean 的实现,及项目中的相关应用

    1.加载.properties文件中的配置参数加载到PropertiesFactoryBean容器中 <bean id="configProperties" class=&q ...

  2. python-Web-数据库-oracle

    1.oracle体系结构 --------全局数据库,这里指物理磁盘上的数据库(物理结构,一个真实存在的磁盘目录),一般一台oracle服务器有1个全局数据库,文件占1G多.oracle允许一台 -- ...

  3. 如何简单的编译v8动态库

    按照google v8的官方提供的方法,在国内,完成编译简直太难了. 还好nodejs提供离线编译能力,稍微改造一下可以从node源码中直接编译纯净的v8动态库. 直接把v8解压出来的py/gpy文件 ...

  4. python安装第三方库报错:Cannot uninstall '***'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

    pip install --ignore-installed ${PACKAGE_NAME}

  5. Gym - 100989 L / M 【dfs / dp】

    题目链接:http://codeforces.com/gym/100989/problem/L / http://codeforces.com/gym/100989/problem/M 题目大意:给定 ...

  6. HDU 1688 Sightseeing 【输出最短路+次短路条数】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1688 题目大意:给n个点,m条有向边.再给出起点s, 终点t.求出s到t的最短路条数+次短路条数. 思 ...

  7. JDK1.8 新特性(全)

    原文链接:https://blog.csdn.net/qq_29411737/article/details/80835658

  8. ABC044 Digit Sum

    题目链接 我的思路略复杂,这里介绍一个比较简洁的做法. 对于 $b \le \sqrt{N}$,暴力枚举 $b$.对于 $b > \sqrt{N}$, 注意到在 $b$ 进制下 $N$ 至多有 ...

  9. 无法执行vue初始化命令

    无法执行vue初始化命令:https://www.jianshu.com/p/9eb3cf854aa8 今天vue 初始化项目时提示错误 执行命令: npm install -g vue-cli 执行 ...

  10. PHPexcel使用 技巧

    phpexcel不用多说了  导出表格时经常会用到  本帖主要记录一下几个经常用到的操作 # 设置自动换行 $PHPExcel->getActiveSheet()->getStyle(&q ...