关于AOP的学习过程简单总结

从听说AOP,到学习、使用AOP已经有3年多了。在这过程中,主要接触了两个AOP的实现spring AOP与aspectj,先学习了spring AOP,后来使用spring2.0的时候,才学习了aspectj,在使用spring AOP的时候,一直感觉自己没有抓住AOP的精髓,就会使用spring AOP来配置事务,再难一点就搞不定了。不看文档的话,经常忘记join point与ponit cut的关系与概念,直到在看了aspectj in action这本书以后,感觉自己才真正抓住了AOP的核心,其实看这本书,也是因为spring2.0引入了aspectj的语法,才去看的,本来只想学习一下aspectj的语法,没想到,收获了更多的知识,现在不论怎么,都不会忘记AOP的各种术语与意义。
在这里,我想说的是,spring AOP使用Proxy来实现AOP比较难于理解,特别是对于初学者,我认为代理模式与AOP并不能化等号,而且开始就使用spring AOP来学习,肯定抓不住AOP的精髓,而且会让初学者产生错觉,认为这就是AOP。若想学好AOP,最好开始就学习aspectj,因为aspectj是AOP中各种思想、术语、概念的源头鼻祖,其它的实现都是在往aspectj思想上靠拢,我想这也是spring2.0+引入aspectj语法的原因,就像spring参考文档能够中说的,spring apsectj配置语法的底层仍然使用proxy的方式来实现的,但是带来的效果是不一样的,尤其是它给AOP的使用者的感觉是不一样的,让使用者更容易抓住AOP的本质,而不是与各种复杂配置文件,以及复杂概念作斗争。

你可能感兴趣的:(spring,AOP)