UserDao userDaoProxy = (UserDao) Proxy.newProxyInstance(userDao.getClass().getClassLoader(),new Class[]{UserDao.class}, logInterceptor);
userDaoProxy.addUser();
userDaoProxy.delete();
}
注:new Class[]{UserDao.class} 和 UserDao.getClass().getInterfaces()是一样的,前者是数组,肯定定义多个接口,后者是定义一个接口
UserDao和UsreDaoImpl中就是放了两个方法,分别为addUser(),delete()
UserDao接口
public interface UserDao {
public void addUser();
public void delete();
}
UserDaoImpl类
public class UserDaoImpl implements UserDao {
@Override
public void addUser() {
// TODO Auto-generated method stub
System.out.println("添加啦=======");
}
@Override
public void delete() {
// TODO Auto-generated method stub
System.out.println("删除操作==");
}
}
Junit测试的结果为:
拦截的功能
添加啦=======
拦截的功能
删除操作==
[java]
[java]
[java] 我们可以看到 我们在每一个调用的方法钱都加上了想要添加的方法
我们可以看到 我们在每一个调用的方法钱都加上了想要添加的方法