读书人

AOP 的容易入门

发布时间: 2012-09-19 13:43:54 作者: rapoo

AOP 的简单入门

?

AOP 的简单入门

?

自己也算是从业多年,对于AOP的概念应该算是听的烂的不能再烂了,这方面的书也看的不少,但是自己一直没有机会去实践下。

乘在这个稍微有点空闲的下午,就随手玩玩SPRING的AOP,也谈谈自己对于AOP的理解及其衍生的一些东西。

?

1.一切术语都是纸老虎

基本概念,也可以说是基本术语。任何一个软件概念提出时候,都少不了这个东西。CRM,AOP,SOA等等,伴随这些东西的都会有相应体系内的术语。

我个人的看法是一切术语的出现不是并不是向大众解释清楚这件事到底是怎么一回事,其主要是基于两个方面考虑:

?

1.让自己提出观点显得系统化,更具有说服力。

2.迷惑大众,或是迷糊那些刚进入这个领域的初学者。

?

两个看似矛盾的因素,其实归结到本质就是将一个简单的东西复杂化并迷糊那些辨别能力的一般的人,大家对于抽象到一定程度的东西但是心怀敬畏之心的,然后带着膜拜的心理去接受,生怕一不小心亵渎了内心的女神。扯开来讲现在社会,官员的道德沦丧,其中的一个诱因就是对于敬畏之心的缺失,当一个人无所畏时,才是最可怕的,因为这个时候已经没有任何约束能约束他的行为。

?

回归正题,既然提到术语,那么我们就将AOP中的那些术语列出来看看。

切面(Aspect)、连接点(Joinpoint)、通知(Advice)、切入点(Pointcut) 、目标对象(Target Object)、AOP代理(AOP Proxy)。

通知又分为几种:前置通知(Before advice)、后通知(After advice)、返回后通知(After return advice)、环绕通知(Around advice)、抛出异常后通知(After throwing advice) 等。

?

好了,现在我们来看看这些术语,谁能一眼就明白这些东西能告诉我们什么?谁能通畅的理清楚它们之间的关系。开始解释之前,我们看看维基百科上对AOP的定义是什么:

?

?

?

?

5.AOP能干什么?

现在回头看看最初问的五个问题,那些杂事,是不是可以对应到软件中的几个概念:日志记录,性能统计,安全控制,事务处理,异常处理,更衍生的提还有缓存,持久化,同步等

17 楼 lsjinpeng 2012-09-11 久经沙场,宝刀未老
lz一看就是工作XX年的经验人 18 楼 ciao灰灰 2012-09-11 讲的太好了、、 精彩部分果断Ctrl C、、Ctrl V 19 楼 Lovic 前天 dfgvgvgvgvgvgvgv

读书人网 >开源软件

热点推荐