直挂云帆济沧海,展翅遨翔登九天!

我要飞得更高...

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  19 随笔 :: 0 文章 :: 5 评论 :: 0 Trackbacks
        AOP全称叫做Aspect-Oriented Programming,即面向方面编程或叫做面向切面编程。目前基于java的开源框架有很多已经应用了AOP思想进行设计开发。在轻量级的J2EE应用开发中,AOP经常可以解决一些系统级的服务,比方说事务处理、安全检查、系统日志等。
        目前在AOP编程开发中,有许多新的名词,这些名词的出现会让一些刚开始涉足AOP的朋友们是一头雾水。下面我会把每个名词的意思用自己的语言再描述一遍。
        关注点:关注点即是需要我们去解决的去关心的问题。关注点又可分为核心关注点和横切关注点。核心关注点指的是一个系统中的核心业务功能,也可以认为是是业务逻辑。横切关注点指的是充斥在各个核心关注点间的可以解决同一类问题的的关注点。那么我们的系统也可以认为是由若干个关注点组成的。
       连接点:连接点就是在程序运行时需要在某一点中插入切面,那一点就是连接点。这一点可以是一个方法、一个属性、构造函数、类静态初始化模块。在Spring框架中,只关注方法的切面,即只关心的是方法连接点。
        切入点:切入点其实就是连接点的集合。在Spring框架中我们经常可以看到利用正则表达式对切入点进行定义。
        通知:通知其实就是一个切面的具体实现。比方说在一个业务订单的处理中,切入了订单处理的日志,那么这个日志的具体实现就是一个advice。比方说这个日志实现了某人某时间进行订单的处理审批。那么通知有几种。有前通知、后通知、环绕通知、当然Spring框架中还有Exception通知。
        切面:上面讲到的切入点与通知就是切面的组成部分。
        引介:引介很强大,但是目前用的比较少。它可以强大到给一个定义好的类在运行时动态地添加方法、属性。
        织入:光有切面与核心关注点是不够的,因为这样两者还没有建立关系起来。那么织入的目的就是让两者建立起关系。织入也有三种方式:
1.通过Java代理实现织入。那么又有两种方式。一种是基于代理接口的Java动态代理。另一种是动态字节码生成器代理,也就是在spring中的经常发现的cglib.jar包。
2.有些Aop的实现织入采用了自定义的类加载器,在虚拟机加载字节码的时候进行织入。
3.最后一种就是使用专门的编译器来编译整个应用程序,在编译的过程中就进行织入。
        拦截器:拦截器故名思意就是进行拦截。它可以对连接点进行拦截。那么拦截器也可以组成链通常也称为栈。拦截器的说明可见我上一篇文章。
       
       
未完待续!
posted on 2008-08-14 22:53 周大侠 阅读(242) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: