《Spring源码深度解析》学习笔记-AOP
1.动态AOP使用示例
1)创建用于拦截的bean
2)创建Advisor
3)创建配置文件
4)测试
2.动态AOP自定义标签
1)注册AnnotationAwareAspectJAutoProxyCreator
所有解析器都是对BeanDefinitionParser接口的统一实现,入口从parse函数开始
3.创建AOP代理
/*忽略
@#¥%#¥¥%%#@##@#¥¥!!!!通过截图软件把相关代码截到一张图,事实证明不能这样干,截完图开始对着在图上打笔记,最终保存的时候,保存不了@#¥%……Y$$$$闪退了,一切前功尽弃,从新来一遍吧,重新编辑图片,编辑一下就保存,测试没问题,然后一点一点往图上加注释,OK,最终保存,又闪退....................
nothing to say!!! hao xiang ma ren !!!
*/
4 静态AOP 使用示例
加载时织人(Load-Time Weaving, LTW)指的是在虚拟机载入字节码文件时动态织人
AspectJ切面。Spring 框架的值添加为 AspectJ LTW在动态织入过程中提供了更细粒度的控制。
如果想从动态代理的方式改成静态代理的方式需要做如下改动。
(1)Spring全局配置文件的修改, 加入LWT开关。
(2)加入aop.xml
(3)加入启动参数
5 创建AOP静态代理
(1)Instrumentation 使用
Java在1. 5引人java. lang. instrument, 你可以由此实现一个Java agent, 通过此agent 来修改
类的字节码即改变一个类
(2)自定义标签
在Spring 中如果需要使用 AspectJ的功能, 首先要做的第一步就是在配置文件中加人配置:
<context:load-time-weaver/>。我们根据之前介绍的自定义命名空间的知识便可以推断, 引用
AspectJ的人口便是这里, 可以通过查找load-time-weaver 来找到对应的自定义命名处理类。