1,UserService
public interface UserService {public void save();
public void delete();
}
2,UserServiceImpl
public class UserServeceImpl implements UserService {
public void save() {
System.out.println("save user");
}
public void delete() {
System.out.println("delete user");
}
}
3,LogInterceptor
/**
*
* @author dwj
* 2015-7-26 下午06:43:34
*/
public class LogInterceptor implements InvocationHandler{
private Object target;//被代理對象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd HH:MM:ss SSS");
public void addLog(){
System.out.println("執行時間:"+sdf.format(new Date()));
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
addLog();
method.invoke(target, args);//target 被代理的對象來調用, args是參數
return null;
}
public Object getTarget() {
return target;
}
public void setTarget(Object target) {
this.target = target;
}
}
4,ProxcyTest
public class ProxcyTest {
public static void main(String[] args){
//給哪個對象創建代理
UserService userService=new UserServeceImpl();
LogInterceptor log=new LogInterceptor();
log.setTarget(userService);
UserService userServiceProxy=(UserService) Proxy.newProxyInstance(userService.getClass().getClassLoader(), new Class[]{UserService.class}, log);
userServiceProxy.save();
userServiceProxy.delete();
}
}