package com.tim.spring.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import com.tim.spring.Dao.UserDao;
public class MyUserManagerHandler implements InvocationHandler {
// 要代理的原始对象
public Object userDao;
/**
* 构造函数。
*
* @param obj
* 要代理的原始对象。
*/
public MyUserManagerHandler(Object userDao) {
this.userDao = userDao;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result;
// 方法调用之前
checkyUser();
doBefore();
// 调用原始对象的方法
result = method.invoke(this.userDao, args);
// 方法调用之后
doAfter();
return result;
}
// 通知(Advice)
public void checkyUser() {
System.out.println("----------checkyUser------------");
}
// 通知(Advice)
private void doBefore() {
System.out.println("before method invoke!");
}
// 通知(Advice)
private void doAfter() {
System.out.println("after method invoke!");
}
}
评论0
最新资源