zoukankan      html  css  js  c++  java
  • Spring学习之Aop的基本概念

    切面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子,切面用Spring的 Advisor或拦截器实现。

    连接点(Joinpoint): 程序执行过程中明确的点,如方法的调用或特定的异常被抛出以及客户端调用的方法

    通知(Advice): 在特定的连接点,AOP框架执行的动作,即就是切面中的方法,各种类型的通知包括“around”、“before”和“throws”通知。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。Spring中定义了四个advice: BeforeAdvice, AfterAdvice, ThrowAdvice和DynamicIntroductionAdvice

    切入点(Pointcut): 指定一个通知将被引发的一系列连接点的集合,即类似于条件,只有满足一定条件才能把通知和目标方法结合在一起,AOP框架允许开发者自定义切入点:例如,使用正则表达式。 Spring定义了Pointcut接口,用来组合MethodMatcher和ClassFilter,可以通过名字很清楚的理解, MethodMatcher是用来检查目标类的方法是否可以被应用此通知,而ClassFilter是用来检查Pointcut是否应该应用到目标类上

    引入(Introduction): 添加方法或字段到被通知的类。 Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现 IsModified接口,来简化缓存。Spring中要使用Introduction, 可有通过DelegatingIntroductionInterceptor来实现通知,通过DefaultIntroductionAdvisor来配置Advice和代理类要实现的接口

    目标对象(Target Object): 包含连接点的对象,也被称作被通知或被代理对象,即就是POJO

    AOP代理(AOP Proxy): AOP框架创建的对象,包含通知。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

    织入(Weaving): 组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入

    ****** 代理对象的方法 = 通知 + 目标方法 ******

  • 相关阅读:
    Codeforces 1255B Fridge Lockers
    Codeforces 1255A Changing Volume
    Codeforces 1255A Changing Volume
    leetcode 112. 路径总和
    leetcode 129. 求根到叶子节点数字之和
    leetcode 404. 左叶子之和
    leetcode 104. 二叉树的最大深度
    leetcode 235. 二叉搜索树的最近公共祖先
    450. Delete Node in a BST
    树的c++实现--建立一棵树
  • 原文地址:https://www.cnblogs.com/sunfie/p/4753065.html
Copyright © 2011-2022 走看看