What is AOP?
AOP即Aspect-Oriented Programming的缩写,中文意思是面向切面(或方面)编程。AOP实际上是一种编程思想,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种思想。
在传统的面向对象(Object-Oriented Progr amming,OOP)编程中,我们总是按照某种特定的执行顺序来实现业务流程,各个执行步骤之间是相互衔接、相互耦合的,对垂直切面关注度很高,横切面关注却很少,也很难关注。那么怎样可以解决这个问题呢?我们需要AOP,关注系统的“切面”,在适当的时候“拦截”程序的执行流程,把程序的预处理和后处理交给某个拦截器来完成。这样,业务流程就完全的从其它无关的代码中解放出来,各模块之间的分工更加明确,程序维护也变得容易多了。
正如上所说,AOP不是一种技术,而是编程思想。凡是符合AOP思想的技术,都可以看成是AOP的实现。目前的AOP实现有AspectJ、JBoss4.0、nanning、spring等项目。其中Spring对AOP进行了很好的实现,同时Spring AOP也是Spring的两大核心一。
AOP的发展目前已经历了两个阶段:第一阶--静态AOP和第二阶段—动态AOP。静态AOP阶段,相应的横切关注点以Aspect形式实现之后,会通过特定的编译器ÿ