概念:通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用之前或调用后进行处理。既(AOP微实现),AOP的核心技术面向切面编程。
应用场景:
SpringAOP、事务原理、日志打印、权限控制、远程调用、安全代理。(可以隐藏真实角色)
一、静态代理(静态定义代理类),代码如下(为了方便,这里把多个class放到一起展示,直接复制到编辑器里是会报编译错误的,因为一个java文件只能有一个public):
public interface IUserDao {
public void add();
public void save();
}
public class UserDaoImpl implements IUserDao {
@Override
public void add() {
System.out.println("add...");
}
@Override
public void save() {
System.out.println("save...");
}
}
//静态代理 静态需要生成代理对象,不利于扩展
public class UserDaoProxy implements IUserDao{
private IUserDao iUserDao;
public UserDaoProxy(IUserDao iUserDao) {
this.iUserDao = iUserDao;
}
@Override
public void add()