边城愚人

如果我不在边城,我一定是在前往边城的路上。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  31 随笔 :: 0 文章 :: 96 评论 :: 0 Trackbacks

AOP

     摘要: 在结束了上一篇Spring 1.x中AOP的使用之后,我用马不停蹄的打开Eclipse,做着Spring2.X下了AOP的Sample。在上一篇文章中的配置过程中,由于对自动代理不是很熟,出现了循环引用的异常信息。当初在阅读PicoContainer源码时看到循环引用不以为然,后来在学习AspectJ时小有印象,这次在折腾了半个多小时后可加深了印象。  阅读全文
posted @ 2007-08-30 08:42 kafka0102 阅读(2266) | 评论 (2)  编辑

     摘要: 本文通过一个“Hello World”级别的横切性功能介绍Spring1.X中AOP的使用,并结合Spring的经典的声明式事务管理给出Spring AOP配置中的经典方案。在Spring2出来以后,Spring1.X的AOP使用方式已经“不合时宜”了,因此如果你是在新项目中采用Spring AOP,建议使用Spring2中的AOP使用方式。关于Spring2.X中AOP的使用,参考该文的姊妹文章Spring2.X中AOP的使用。

一提到AOP的应用,人们就会本能地提起日志功能,它就像一门语言的“Hello World”一样被人们无数次提起。也许有人会疑问除了“不实用”的日志功能,AOP还能做些什么?可能在很多时候我们并不需要自己实现一个AOP功能,尤其是在拥有了很多优秀的AOP应用框架来解决通用的横切性问题的情况下(比如Spring的事务管理、比如Acegi的安全管理、比如WebWork的拦截功能)。但问题总是层出不穷的,总会有些问题可能需要我们自己AOP一下。  阅读全文
posted @ 2007-08-30 08:38 kafka0102 阅读(2324) | 评论 (1)  编辑

     摘要: call和execution的指示符分别为call(Method-Signature)、execution(Method-Signature),匹配方法签名的方法或构造函数的执行。对于call来说,调用的连接点位于方法调用点的调用代码处;对于execution来说,执行的连接点位于方法执行的位置。也就是说,call和execution的重要区别在于它们传递了哪些类型给AspectJ编译器以用来与aspect进行链接。  阅读全文
posted @ 2007-07-12 09:50 kafka0102 阅读(4126) | 评论 (6)  编辑

     摘要: target切入点格式如下:target([Type|Identifier])。Type指示对连接点处的对象类型提供一个静态编译时评估,并采用完全限定类名的形式(也就是说,Type不能是使用通配符的类型声明模式)。Identifier提供了一种方法,可通过它来评估连节点处的运行时对象的实际类型,而不仅仅是静态类型。 Identifier在运行时动态地赋予合适的对象。  阅读全文
posted @ 2007-07-09 09:17 kafka0102 阅读(2669) | 评论 (3)  编辑

     摘要: 让我好好想想,AspectJ中最常用的切入点是什么?哦,也许是call(Method-Signature)吧。这是个相对简单的方法签名。实际上,方法签名的完整形式如下:

[modifiers] [returnTypePattern] [DeclaredTypePattern.]methodName([Parameters])[throws TypePattern],其中方括号中的签名组件是可选的。modifiers 为修饰符模式,returnTypePattern 为返回类型模式,DeclaredTypePattern 为类型声明模式,methodName 为方法名称,Parameters 为方法参数,throws TypePattern 为throw字句。该文仅仅介绍 DeclaredTypePattern,因为相比之下其它模式比较简单的多。

  阅读全文
posted @ 2007-07-07 14:54 kafka0102 阅读(1709) | 评论 (2)  编辑