• 用注解配置动态代理


    /**
    * 切面类,要将当前类中的方法插入到目标对象的方法
    *
    * @author ASUS
    *
    */
    @Aspect
    // 表示此类为切面类
    public class ProxyObj {
    // // @Before 表示前置通知。目标方法执行前需要调用该方法
    // // * com.lovo.service.*.*(..) 表示目标方法的路径
    // // 第一个*表示方法返回类型为任意类型
    // // com.lovo.service为包名 com.lovo.service..为指定包和指定的子包
    // // *.*表示该包中所有的类的所有的方法 s*.*表示该包中以s开头的类的所有的方法
    // // (..)该方法中的参数为任意参数
    // // @Before("execution(* com.lovo.service.*.*(..))")
    // // public void ready() {
    // // System.out.println("开始订餐。。。");
    // // }
    // // @AfterReturning("execution(* com.lovo.service.*.*(..))")
    // // public void end(){
    // // System.out.println("开发票。。");
    // // }
    // // 环绕注解
    // @Around("execution(* com.lovo.service.*.*(..))")
    // public Object around(ProceedingJoinPoint point) {
    // System.out.println("取钱");
    // try {
    // // 执行目标方法,该方法将得到目标方法执行完毕后的返回值
    // Object value = point.proceed();
    // System.out.println("茶多酚");
    // return value;
    // } catch (Throwable e) {
    // // TODO Auto-generated catch block
    // e.printStackTrace();
    // }
    // return null;
    // }

    @AfterThrowing(value = "execution(* com.lovo.service.*.*(..))", throwing = "er")
    public void throwsMethod(JoinPoint point, Exception er) {
    // 得到目标对象
    Object obj = point.getTarget();
    // 得到目标对象的类型
    String className = obj.getClass().getName();
    // 得到目标方法名
    String methodName = point.getSignature().getName();
    System.out.println("执行"+className+"的"+methodName+"方法,抛出"+er.getMessage());
    }

    }

  • 相关阅读:
    Vitrualbox虚拟机网络设置
    挂接命令(mount) 【转】
    ubuntu Error mounting /dev/sda6 at /media/xxx...
    mysql命令[转]
    fopen参数
    fprintf&prinft&sprintf
    UNIX 网络编程知识,函数积累
    vim 括号自动补全
    CDbConnection failed to open the DB connection
    [Android_蓝牙]Android4.0蓝牙使能的详细解析
  • 原文地址:https://www.cnblogs.com/sanhuan/p/4029810.html
Copyright © 2020-2023  润新知