• AOP


    AOP术语

    1.target:目标类,需要被代理的类。例如:UserService

    2.Joinpoint(连接点):所谓连接点是指那些可能被拦截到的方法。例如:所有的方法

    3.PointCut 切入点:已经被增强的连接点。例如:addUser()

    4.advice 通知/增强,增强代码。例如:afterbefore

    5. Weaving(织入):是指把增强advice应用到目标对象target来创建新的代理对象proxy的过程.

    6.proxy 代理类

    7. Aspect(切面): 是切入点pointcut和通知advice的结合

    一个线是一个特殊的面。

    一个切入点和一个通知,组成成一个特殊的面。

     

    切入点表达式

    1.execution()  用于描述方法 【掌握】

    语法:execution(修饰符  返回值  包..方法名(参数) throws异常)

    修饰符,一般省略

    public 公共方法

    * 任意

    返回值,不能省略

    void 返回没有值

    String 返回值字符串

    * 任意

    包,[省略]

    com.itheima.crm 固定包

    com.itheima.crm.*.service crm包下面子包任意 (例如:com.itheima.crm.staff.service

    com.itheima.crm.. crm包下面的所有子包(含自己)

    com.itheima.crm.*.service.. crm包下面任意子包,固定目录serviceservice目录任意包

    类,[省略]

    UserServiceImpl 指定类

    *Impl Impl结尾

    User* User开头

    * 任意

    方法名,不能省略

    addUser 固定方法

    add* add开头

    *Do Do结尾

    * 任意

    (参数)

    () 无参

    (int) 一个整型

    (int ,int) 两个

    (..) 参数任意

    throws ,可省略,一般不写。 

    execution(* com.itheima.crm.*.service..*.*(..))

     aspectj 通知类型,只定义类型名称。已经方法格式。

    l个数:6种,知道5种,掌握1中。

    before:前置通知(应用:各种校验)

    在方法执行前执行,如果通知抛出异常,阻止方法运行

    afterReturning:后置通知(应用:常规数据处理)

    方法正常返回后执行,如果方法中抛出异常,通知无法执行

    必须在方法执行后才执行,所以可以获得方法的返回值。

    around:环绕通知(应用:十分强大,可以做任何事情)

    方法执行前后分别执行,可以阻止方法的执行

    必须手动执行目标方法

    afterThrowing:抛出异常通知(应用:包装异常信息)

    方法抛出异常后执行,如果方法没有抛出异常,无法执行

    after:最终通知(应用:清理现场)

    方法执行完毕后执行,无论方法中是否出现异常

    环绕
    
    try{
         //前置:before
        //手动执行目标方法
        //后置:afterRetruning
    } catch(){
        //抛出异常 afterThrowing
    } finally{
        //最终 after
    }
    

      

  • 相关阅读:
    vue+filesaver+xlsx导出table为excel
    layer弹窗第一次不居中。然后再点击就居中了。解决办法
    GitHub的Fork 是什么意思
    什么时候会发送options请求
    实现H5连接分享给好友或朋友圈自定义分享内容(标题、图片、简介)的方法代码
    vue的element的table表头自定义添加按钮
    小程序配置体验版添加参数
    迅为iMX8M Mini开发板硬件接口原理分析
    迅为i.MX8MM 核心板引脚说明(按功能划分)
    迅为3399开发板Ubuntu 系统双屏异显,双屏同显测试
  • 原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/11263650.html
Copyright © 2020-2023  润新知