您的位置:首页 > 编程语言 > Java开发

spring AOP

2016-01-27 23:19 477 查看
什么事aop,aop就是对业务逻辑的实现是按功能模块来划分的,当你需要实现某一个功能的时候,只需要将不同的功能模块组合在一起。想想一下没有aop我们会怎么做呢?比如某一天领导突然说,给我把这1000个类前面都加一个输出“欢迎领导”的功能。你会怎么做,在每一个接口里面都加上这个功能,啊大概1000条一模一样的代码,那第二天领导又说,换成“欢迎首长”。又是1000条修改。累死了。

但是有了aop,你就可以这样做了。

首先讲解一下aop的常用术语,在讲之前我提醒一下大家,术语只是个术语而已,你从它的名字很难得到任何与它内容有关的信息。

我这里就用英语了,汉语翻译过来太坑爹。我的解释都是通俗解释。注意我讲的是spring的aop,spring的aop只做到了方法级别,这对我们大多数应用已经足够了。

但是向aspectJ,JBoos可以做到属性级别。

advice:你要实现的代码,就像上面的“欢迎领导”,“欢迎首长”。同时还包括实现代码的具体执行顺序。比如在这个方法执行前执行,或者执行后执行。

joinPoint:连接点,就是那1000个接口当中的任意一个.

pointCut:就是1000个接口,通常我们会用pointCut,因为joinPoint只能绑定一个接口,但是通常我们在实际当中都需要绑定多个。

aspect:就是把对应的pointCut,joinPoint,advice放在一起的一个东西(这是从配置和代码的角度来讲的)。

我现在用一个具体的实例来讲解。

声明一个Performe接口,里面有一个performe方法。

声明一个Juggler类实现了Performe接口。

声明一个Audience类,表示观众。

我们想要实现这样的逻辑。

在Performe的performe接口执行之前,我们需要观众执行关掉手机这个方法switchOffCell();

在Performe的performe接口执行之后,我们需要观众调用鼓掌欢呼的方法cheet();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring aop