zoukankan      html  css  js  c++  java
  • 10. Spring 面向切面

    10.1 产品清单概述

    • 通知(Advice)
      • 前置通知(Before)
      • 后置通知(After)
      • 返回通知(After-returning)
      • 异常通知(After-throwing)
      • 环绕通知(Around)
    • 连接点(Join point)
    • 切点(Poincut)
    • 切面(Aspect)
    • 引入(Introduction)
    • 织入(Weaving)
      • 编译期
      • 类加载期
      • 运行期

    10.1 @Aspect定义切面、定义切入位置

    import org.aspectj.lang.annotation.*;
    
    @Aspect
    public class Notifier {
        @Before("execution(static void *..*.main(String[]))")
        public void before(){
            System.out.println("Application is running!");
        }
    
        @After("execution(static void *..*.main(String[]))")
        public void after(){
            System.out.println("execute end!");
        }
    
        @AfterReturning("execution(static void *..*.main(String[]))")
        public void afterReturning(){
            System.out.println("return end!");
        }
    
        @AfterThrowing("execution(static void *..*.main(String[]))")
        public void afterThrowing(){
            System.out.println("Exception");
        }
    }

    10.2 使用PointCup定义切入点、重复使用切入点

    import org.aspectj.lang.annotation.*;
    
    @Aspect
    public class Notifier {
    
        @Pointcut("execution(static void *..*.main(String[]))")
        public void pointCup(){}
    
        @Before("pointCup()")
        public void before(){
            System.out.println("Application is running!");
        }
    
        @After("pointCup()")
        public void after(){
            System.out.println("execute end!");
        }
    
        @AfterReturning("pointCup()")
        public void afterReturning(){
            System.out.println("return end!");
        }
    
        @AfterThrowing("pointCup()")
        public void afterThrowing(){
            System.out.println("Exception");
        }
    }
  • 相关阅读:
    QML小例子【QML工程里信号与槽】
    TensorFlow基础笔记(11) conv2D函数
    tensorflow学习笔记(10) mnist格式数据转换为TFrecords
    tensorflow函数学习笔记
    各个层次的gcc警告
    opencv3.2 dnn 图像分割
    ubuntu16.04 安装caffe以及python接口
    linux profileashrcash_profile之间的区别和联系
    ubuntu 16.04 安装pycharm
    Ubuntu下配置samba实现文件夹共享
  • 原文地址:https://www.cnblogs.com/black-/p/9095797.html
Copyright © 2011-2022 走看看