考拉~

导航

 

  在学习spring时,我们最新接触的是AOP/IOC,DI,这里主要总结下spring的aop。

  在我们开发的所有应用中,面向对象的思想并不能解决所有问题,而aop(Aspect Oriented Programming )面向切面的编程是对面向对象编程的一种补充。

  aop解决问题情境:

    人员在访问系统时,我们通常会对访问者的操作(增删改)进行记录,而一个系统最少需要200个类来支持,每个类中大约有8个方法,也就有1600个方法,而如果每个方法都需要有通知来记录用户的操作行为,这对程序开发者无疑是个巨大的工作量,但spring的aop正好解决了这类问题。

  一、aop的通知来下

    1.前置通知(方法开始运行前通知)

    2.环绕通知(前置通知后方法开始前)

    3.最终通知(正在运行的程序就快要结束的时候,且方法中没有异常进行通知——方法结束前)

    4.方法跑出异常通知(方法中存在异常时进行通知)

    5.后置通知(方法结束后通知)

    

  二、aop代理方式

    1.静态代理(缺点:不智能)

      有多少个类需要代理,就需要写多少个类的proxy类,跟在原类上编写代码一样麻烦,但这确实是代理机制的一种体现。

    2.动态代理

      采用xml的配置方式直接进行插拔式编程,方便快捷。

    

 

    

    

    

 

    

  

  

  execution中表达式:

    (1)第一个*表示方法的返回类型为任意类型,如果没有则返回void

    (2)第一次出现 .. 表示包下任意层级的类均可匹配

    (3)括号之前的*表示方法

    (4)括号中的 .. 表示匹配任意类型的参数或没有参数

    

 

posted on 2018-03-03 21:21  考拉~  阅读(132)  评论(0编辑  收藏  举报