Spring AOP

AOP : 面向切面、面向方面、面向接口,是一种横切技术。

        Servlet技术中的Filter、Struts2中的Interceptor都使用的是这种横切技术。

        该技术通过动态代理实现。

横切技术的应用:

    事务管理:

        数据库事务 - DBMS

        编程事务 - 代码中手动commit/rollback

        声明式事务 - 配置文件中配置事务 --> Srping AOP

    日志处理

    安全验证

AOP的几个重要概念:

1、关注点(concern)

一个关注点可以是一个特定的问题,概念、或者应用程序的兴趣点。

安全验证、日志记录、事务管理都是一个关注点。

在oo应用程序中,关注点可能已经被代码模块化了还可能散落在整个对象模型中。

2、横切关注点(crosscutting concern)

散落在多个类中或方法中的某个关注点的实现代码

3、方面(aspect)

一个方面是对一个横切关注点模块化,它将那些原本散落在各处的、用于实现这个关注点的代码规整在一处

4、建议/通知(advice)

advice是point cut执行代码,是方面执行的具体实现

   通知类型:

  try{

    //前置通知

       //环绕通知

         //调用目标对象方法

       //环绕通知

    //后置通知

  }catch(){

    //异常通知

  }finally{

    //终止通知

  }


5、切入点(point cut)

使用表达式指定的连接点的集合

6、织入(weaving)

将aspect(方面)运用到目标对象的过程

7、连接点(join point)

方面在目标对象上切入的位置 

附上图示:

Spring AOP_第1张图片

你可能感兴趣的:(Spring AOP)