Spring——(4)AOP入门

目录

1.什么是 AOP

2.应用场景

3.spring底层实现方法

(1)JDK的动态代理:

(2)Cglib的动态代理:

4.Spring 的基于 AspectJ 的 AOP 开发

(1)Spring 的AOP简介

(2)Spring   AOP中的相关术语:


一、AOP的入门

1.什么是 AOP

https://img-blog.csdnimg.cn/20190319163727724.png

2.应用场景

https://img-blog.csdnimg.cn/20190319163749994.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MjM1Njc3,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/20190319163846732.png

性能监控(代码执行前加一个时间,运行后加一个时间)

3.spring底层实现方法

代理机制: * Spring 的 AOP 的底层用到两种代理机制:

     * JDK 的动态代理 :针对实现了接口的类产生代理.

     * Cglib 的动态代理 :针对没有实现接口的类产生代理. (类似与Javassit)应用的是底层的字节码增强的技术 生成当前类 的子类对象.(不可用final)

Spring 如果实现接口默认用JDK   没有实现接口就用Cglib

(1)JDK的动态代理:

https://img-blog.csdnimg.cn/20190319165423124.png

https://img-blog.csdnimg.cn/20190319165437270.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MjM1Njc3,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/20190319165450982.png

https://img-blog.csdnimg.cn/201903191718200.png

调用被实现类的任何方法都相当于调invoke中的方法 

https://img-blog.csdnimg.cn/20190319172653689.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MjM1Njc3,size_16,color_FFFFFF,t_70

invoke 方法的参数 

代理对象,正在执行的方法,方法参数

return method.invoke(userDao,args)

method代表代理对象中有的方法

要代理的对象,参数

解释:

https://img-blog.csdnimg.cn/20190319172052265.png

https://img-blog.csdnimg.cn/20190319172123920.png

本类直接实现的InvocationHandler接口所以直接用this就行  代表JdkProxy对象

调用被实现类的任何方法都相当于调invoke中的方法

(2)Cglib的动态代理:

4.Spring 的基于 AspectJ 的 AOP 开发

(1)Spring 的AOP简介

(2)Spring   AOP中的相关术语:

猜你喜欢

转载自blog.csdn.net/qq_29235677/article/details/88672438
今日推荐