王朝网络
分享
 
 
 

动态代理和nanning AOP-3

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

动态代理和nanning AOP-3

用nanning来实现Interception

关键字: AOP Nanning Dynamic proxy AOP 动态代理

Interception ,是AOP的特点之一,但是Interception这个名次并不是和AOP的概念一同产生的。顾名思义,Interception就是拦截。本系列的第一篇文章使用java1.3提供的动态代理功能实现了一个Interception的例子,演示了在某个方法执行前和执行后进行了拦截(Interception)。

本文我们用nanning AOP来实现同样的功能。

注意AOP中的Interception和普通概念的interception是不同的。我们最后再讨论这个问题。

代码如下:

package tcftest;

import com.tirsen.nanning.AspectInstance;

import com.tirsen.nanning.Aspects;

import com.tirsen.nanning.Intf;

import com.tirsen.nanning.IntfImpl;

import com.tirsen.nanning.MixinInstance;

import com.tirsen.nanning.NullInterceptor;

public class tcftest {

public tcftest() {

}

public static void main(String[] args) {

AspectInstance aspectInstance = new AspectInstance();

MixinInstance mixinInstance = new MixinInstance();

mixinInstance.setInterfaceClass(Intf.class);

mixinInstance.setTarget(new IntfImpl());

mixinInstance.addInterceptor(new NullInterceptor());

aspectInstance.addMixin(mixinInstance);

Object bigMomma = aspectInstance.getProxy();

Intf intf = (Intf) bigMomma;

intf.call();

}

}

消息拦截接口如下:

package com.tirsen.nanning;

import com.tirsen.nanning.definition.SingletonInterceptor;

public class NullInterceptor implements MethodInterceptor, SingletonInterceptor {

public NullInterceptor() {

};

public Object invoke(Invocation invocation) throws Throwable {

System.out.println("tcf : befor call me , right? ");

return invocation.invokeNext();

}

}

输出结果如下:

tcf : befor call me , right?

call()

关于:

Intf.class

IntfImpl.class

类的代码可以参考上文实现,因为很简单,就不贴出来了。

NullInterceptor.java 的代码,可以在nanning提供的测试包中找到。

我在其中加入了: System.out.println("tcf : befor call me , right? ");

另外:Eclipse M8 的中文问题我还没有解决,谁知道的话请告诉我,谢谢。

注意上面代码的蓝色代码:

可以看到:intf.call() 在这个方法执行之前打印了我们预期的结果,成功地实现了消息的拦截。这个效果和本系列的第一篇文章介绍的java动态代理实现的效果一样。

现在是时候介绍用 java动态代理和nanning 实现Interception 的不同。

AOP中的Interception是允许动态指定的,这个动态指定的点就是point cut。

相信熟悉aop的读者对point cut 都了解。而普通的Interception就不能这样了,是固定写在java程序中。 当然如果你通过设计模式,配置文件等可以让Interception动态指定的话,那你也基本作了一个AOP 的Interception 。

这就是Nanning已经作的工作。

下文我们分析nanningAOP的实现原理。

作者:田春峰

专栏地址:http://www.csdn.net/develop/author/NetAuthor/accesine960/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有