定义:
没有使用AOP前
动态代理
帮目标对象创建代理对象,在目标对象的方法执行前后可以添加其他的方法。,还可以帮目标对象的方法异常处理。
有了动态代理,日志记录可以很强大,而且可以解耦。
代理对象和被代理对象唯一能产生的关联就是实现了同一个接口
jdk默认的动态代理缺点:
1.写起来难且麻烦,每次都要给不同的目标对象设置代理。
2.如果目标对象没有实现任何接口,是无法为他创建代理对象的。
SpringAOP的地城就是动态代理,可以利用Spring一句代码都不写的去创建动态代理。
SpringAOP实现简单,而且没有强制要求目标对象必须实现接口。
SpringAOP专业术语
可以类比数据库
连接点类比所有记录
切入点类比需要的记录
切入表达式类比sql查询语句
SpringAOP常用jar包
SpringAOP常用注解:
spring开启注解扫描
告诉spring哪个是切面类
AOP细节
1.IOC容器中保存的是代理对象,所以一定要用接口类型。如果没有接口,则就是本类型,是cglib帮我们创建的代理对象。