zoukankan      html  css  js  c++  java
  • Spring之AOP

    AOP概念

    1 aop:面向切面(方面)编程,扩展功能不修改源代码实现 

    2  AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码

    3 aop底层使用动态代理实现

    (1)第一种情况,有接口情况,使用动态代理创建接口实现类代理对象

    (2)第二种情况,没有接口情况,使用动态代理创建类的子类代理对象

    AOP原理

    AOP操作术语

    Joinpoint(连接点): 类里面可以被增强的方法,这些方法称为连接点 

    Pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义.

    Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)

    Aspect(切面): 是切入点和通知(引介)的结合 

    Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field.

    Target(目标对象):代理的目标对象(要增强的类)

    Weaving(织入):是把增强应用到目标的过程.

              把advice 应用到 target的过程

    Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类

    Spring的aop操作

    1 在spring里面进行aop操作,使用aspectj实现

    (1)aspectj不是spring一部分,和spring一起使用进行aop操作

    (2)Spring2.0以后新增了对AspectJ支持 

    2 使用aspectj实现aop有两种方式

    (1)基于aspectj的xml配置

    (2)基于aspectj的注解方式

    Aop实际应用

    1 切入点:实际增强的方法

    2 常用的表达式

    execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

    (1)execution(* cn.itcast.aop.Book.add(..))

    (2)execution(* cn.itcast.aop.Book.*(..))

    (3)execution(* *.*(..))

    (4) 匹配所有save开头的方法 execution(* save*(..))

  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/cuibin/p/7215817.html
Copyright © 2011-2022 走看看