码迷,mamicode.com
首页 > 其他好文 > 详细

用注解配置动态代理

时间:2014-10-16 23:24:43      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:io   ar   for   sp   on   ad   ef   as   tt   

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

}

用注解配置动态代理

标签:io   ar   for   sp   on   ad   ef   as   tt   

原文地址:http://www.cnblogs.com/sanhuan/p/4029810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!