spring aop的实现机制
2014-04-27 17:29
239 查看
概念
AOP(Aspect Oriented Programming,面向切面编程),spring的强大辅助工具之一就是AOP了,能够动态的对即将执行的代码进行拦截处理,比如url过滤也就是权限相关验证,日志处理,缓存机制等等。
实现机制
动态代理
动态字节码生成(cglib)
字节码转换
自定义类加载器
Spring aop的实现
Spring AOP 默认是通过动态代理实现的,当然一般也会搭配cglib一起,当动态代理没用的时候,也就是代理类没有对应的接口时,会采用cglib的实现,而且spring aop有一定的缺点:
1.只能对方法进行切入,不能对接口,字段,静态代码块进行切入。
2.调用同一个类中的其他方法也不会被切入。
3.性能不是很好,使用自定义类加载器,性能要优于动态代理。
AOP(Aspect Oriented Programming,面向切面编程),spring的强大辅助工具之一就是AOP了,能够动态的对即将执行的代码进行拦截处理,比如url过滤也就是权限相关验证,日志处理,缓存机制等等。
实现机制
动态代理
动态字节码生成(cglib)
字节码转换
自定义类加载器
Spring aop的实现
Spring AOP 默认是通过动态代理实现的,当然一般也会搭配cglib一起,当动态代理没用的时候,也就是代理类没有对应的接口时,会采用cglib的实现,而且spring aop有一定的缺点:
1.只能对方法进行切入,不能对接口,字段,静态代码块进行切入。
2.调用同一个类中的其他方法也不会被切入。
3.性能不是很好,使用自定义类加载器,性能要优于动态代理。
相关文章推荐
- ubuntu apt-get 卸载学问
- <java——基础(三)>
- 对ThreadLocal的理解
- 【JavaWeb各种异常汇总】测试框架的使用、导包有顺序
- Spring aop 小实例demo
- 几个著名Java开源缓存框架介绍
- java中接口和抽象类
- 单链表原地逆置java实现
- eclipse简单设置避免遗忘break(switch case)
- PrintCalendar
- MyEclipse 中添加工程显示Some projects cannot be imported because they already exist in the workspace
- Spring -- 3.1
- eclipse 查看原始类出现The jar file rt.jar has no source attachment解决方法
- C#和Java中的一些不同
- Rhythmk 一步一步学 JAVA (20) JAVA enum常用方法
- [c.y.j]spring mvc controller 传参
- dm Server project moves to Eclipse.org
- 从一个简单的计时器,看Java接口的作用
- Java中的final
- java中的HashTable,HashMap和HashSet