`

spring AOP重要概念的定义

阅读更多
关注点(concern):一个关注点可以是一个特定的问题概念,或是应用程序的兴趣区间,总而言之,应用程序必须达到的一个目目标。 eg:安全性检查,事务管理,性能监控。在一个oo的应用中,关注点可能已经被代码模块化,也可能散落在整个对象模型之中

横切关注点(crosscutting concern):如果一个关注点的实现代码散落在很多个类或方法之中,eg:安全性检查,我们称之为横切关注点

方面(aspect):一个方面是对一个横切关注点的模块化,它把原本散落在各处的用于实现这个关注点的代码归整到一处

连接点(join point):程序执行过程中的一点
     1.方法调用(method invocation):对方法可能包括构造函数的调用,不过并非所
  有的aop框架都支持对象构造时的增强(advice)
     2.字段访问(field access):读或写的实例变量,同样,并非所有aop框架都支持字
  段访问的增强,那些支持这类增强的aop框架都可以区分读操作或写操作
     3.异常抛出(throws):特定的异常被抛出

增强(advice):在特定连接点执行的动作,很多aop框架都以拦截器(interceptor)的形式来表现增强————所谓拦截器是这样的一个对象,当连接点被调用时,它会收到一个回调消息。增强的例子包括:a。在执行特定连接点之前,检查安全性凭证   b.在执行某个方法之前开启事务,在连接点执行完毕后提交回滚事务

切入点(pointcut):一组连接点的总称,用于指定某个增强,应该何时被调用,,切入点通常用正则表达式或别的通配符语言来描述,有些aop实现支持切入点的组合

引介(introduction):为一个现有的java类或接口添加方法或字段,这种技术可以用于实现java中的多继承,或者给现有的对象模型附加新的api;eg:可通过引介让一个现有的对象实现w3c规定的xmlnode接口(参见混入继承)

混入继承(mixin inheritance):一个“混入类”封装了一组功能,这组功能可以被混入到现有的类当中,并且无需求助于传统的继承手段。在aop这里,混入是通过引介来实现的,在java中可通过混入来模拟多继承

织入(wearing):将方面整合到完整的执行流程中(完整的类,此时被织入的便是引介)
   
      当执行流程进展到连接点时,增强会首先接管流程控制权,当增强允许执行流程继续前进,执行真正的方法调用或字段访问时,我们就说这样操作(procceed)了


不同类型的增强:
前增强(before ,pre):在连接点调用之前,首先调用增强
后增强(after,post):在连接点调用之后,再调用增强,在aspectJ中,后增强又分为三种:
     1.在调用成功完成之后,aspectj和spring都将这种增强称为“返回后增强”(after returning advice).
    2.在抛出某种特定类型或子类型的异常 后,aspectj称之为“抛出后异常”(after throwing advice),spring称为“抛出异常”(throws advice)
     3.在特定点的任何调用之后,不管嗲用是否抛出异常,aspectj称为“后增强”(after advice)
环境增强(around):这类增强可以完全控制执行流程,除了完成本身的工作之外,它还需要负责主动调用连接点,促使真是的操作发生(procced)--这通常是通过调用某个特定的方式来完成的





  



1
0
分享到:
评论

相关推荐

    Spring AOP精讲

    Spring AOP精讲 AOP概念 让我们从定义一些重要的AOP概念开始。

    实验2 Spring AOP源码

    1、 理解Spring AOP原理和基本概念; 2、掌握基于XML/注解方式的AOP编程; 二:实验内容 1、 定义交易接口: public interface Transaction{ public void income(float amount);//收入 public void expenditure...

    Spring AOP中文教程

    Spring framework是很有前途的AOP技术。作为一种非侵略性的,轻型的AOP framework,你无需使用预编译器或其他的元标签,便可以在Java程序中使用它。这意味着开发团队里只需一人要对付AOP framework,其他人还是象...

    Spring AOP详细介绍.docx

    一 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用 (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after...

    javaSpring-经典概念题-试题-中文

    从基础概念如Spring IoC容器和Spring Bean的定义,到高级主题如依赖注入和AOP的实现,以及Web开发方面的Spring MVC框架和表单数据处理等内容都有涉及。此外,还包括了Spring事务管理和Spring Boot框架的介绍,帮助...

    Spring官网阅读(十八)Spring中的AOP

    这里写目录标题什么是AOPAOP中的核心概念切面通知切点引入目标对象代理对象织入Spring中如何使用AOP1、开启AOP2、申明切面3、申明切点切点表达式excecution表达式语法示例@annotation表达式语法示例within表达式语法...

    spring_教程_2_AOP

    简介AOP知识,包括概念,了解AOP 撑握理解AOP术语 理解Spring中AOP的实现 撑握通知、切入点的定义与使用 撑握ProxyFactoryBean的使用 撑握Spring自动代理的使用

    SpringFramework常见知识点.md

    Spring常见知识点 - 什么是Spring Framework?... - AOP的组成元素和概念有哪些? - AOP实现方式有哪些? - AspectJ AOP 和 Spring AOP的区别? - cglib动态代理和jdk动态代理的区别? Spring常见知识

    spring2.5学习PPT 传智博客

    使用CGLIB实现AOP功能与AOP概念解释 17.使用Spring的注解方式实现AOP入门 18.使用Spring的注解方式实现AOP的细节 19.使用Spring配置文件实现AOP 20.aspectj的切入点语法定义细节 21.搭建和配置Spring与jdbc整合...

    77道Spring面试题以及参考答案(2024年最新版)

    这篇文章总结了77道Spring面试题及答案,涵盖...6. AOP部分对面向切面的核心概念如通知、连接点、切点等进行了解释,并介绍了Spring AOP的实现原理。 总的来说,这篇文章内容丰富全面,适合作为Spring面试的重要参考资料,

    Java框架篇?spring AOP 实现原理

    也是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如安全性、异常处理...

    spring.net中文手册在线版

    Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 简介 2.1.概述 2.2.背景 2.3.模块 2.4.许可证信息 2.5.支持 第三章 背景 3.1.控制反转 第...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.3.1. 切入点指定者的支持 6.2.3.2....

    Spring 2.0 开发参考手册

    6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入...

    Spring中文帮助文档

    6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入...

    spring chm文档

    6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. Spring的AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入...

    Spring API

    6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入...

Global site tag (gtag.js) - Google Analytics