zoukankan      html  css  js  c++  java
  • 用注解配置动态代理

    /**
    * 切面类,要将当前类中的方法插入到目标对象的方法
    *
    * @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());
    }

    }

  • 相关阅读:
    caffe源码整个训练过程
    设计模式--工厂模式 caffe_layer注册
    【Oracle】跟踪文件目录(User_Dump_Dest)生成脚本(11g/9i).txt
    【Oracle】修改参数的同时添加注释
    【Oracle】重置参数
    【Oracle】SCOPE=MEMORY|SPFILE|BOTH
    【Oracle】解锁用户
    【Oracle】开、关、删归档日志(archivelog)
    【Oracle】Rman简介
    【Oracle】非RMAN恢复数据文件、控制文件
  • 原文地址:https://www.cnblogs.com/sanhuan/p/4029810.html
Copyright © 2011-2022 走看看