Che*_*tan 3 java aop spring-aop
我来了一篇关于AOP的文章,在那里提到Aspect编织可以在编译时,类加载时间和运行时期间发生.
在java中,我可以想象,而不是理解编译时编程方面实际上会如何发生.代理类在类编译过程中生成(在项目中启用了方面).生成的字节码将具有代理代码.
但我仍然想知道在类加载时间编织和运行时编织期间究竟(实际)发生了什么.代理类是在加载类时生成的吗?方面库是否在.class(编译时)文件中添加任何编程指令以生成代理类?
Spring AOP实际上将Java动态代理用于接口,如果需要,还使用cglib用于非接口类型.它只适用于Spring Beans.为所有与所谓的切入点匹配的方法自动生成代理.这是在布线期间完成的.
然而,AspectJ不需要甚至不使用代理,它直接生成字节代码,编码到现有的字节代码中.AspectJ功能更强大,可以做的不仅仅是方法拦截.
| 归档时间: |
|
| 查看次数: |
4341 次 |
| 最近记录: |