Spring 之 Aop
Aop概述
为什么学习AOP
对程序进行增强:不修改源码的情况下.
AOP可以进行权限校验,日志记录,性能监控,事务控制.
Spring的AOP的由来:
AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的规范.
底层实现:
代理机制:
Spring的AOP的底层用到两种代理机制:
JDK的动态代理 :针对实现了接口的类产生代理.
Cglib的动态代理 :针对没有实现接口的类产生代理. 应用的是底层的字节码增强的技术 生成当前类的子类对象.
动态代理增强一个类中方法:
1 创建Dao 和DaoImpl
public interface UserDao {
public void save();
public void update();
}
public class UserDaoImpl implements UserDao {
@Override
public void save() {
System.out.println("保存用户...");
}
@Override
public void update() {
System.out.println("更新用户....");
}
}
2 要增加一个日志输出功能,利用 jdk动态代理实现