欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

aspectj给种的属性打桩,进行替换

更新时间: 2014-01-05 01:50:21 责任编辑: Author_N1

 

AspectJ给类的属性打桩,进行替换。

这个东西必须写个博客记一下了,一方面是防止以后忘记,一方面也反思一下自己的固执。

在我们的代码中,通常会有一些配置文件的路径写死在代码里面。比如

public class ConfigPath

{

private static String CONF_FILE = "/dir/xxx/ppp.propetries";

}


在做UT的时候,一般测试环境和真实的生产环境是不一样的,配置文件的路径肯定也是不一样的,这样在测试的时候,必须要把这个路径替换掉,而且不能影响系统原来的代码。

在上一家公司的时候,做过这样的事情,不过在那个公司都是前面的大牛写过这样的东西,自己依葫芦画瓢,照着写一份就好了。

记得当时是在aj文件中,fild = "xxxxx"; 这样的形式来替换的,但是前面的AspectJ关键字记不住了(其实不是这样的,自己记错了,源文件中才是这种形式,aj中还是用的pointcut)。自己固执的认为就是这个形式的,在网上查了很多Aj的资料,都没找到这种形式打桩的(其实现在网上Aj的资料也不多)。

在此还是要感谢一下表哥和劢神,最后还是他们给我说的怎么弄。


要想替换掉上面那个ConfigPath类中的 CONF_FILE 属性的值, 应该在AJ文件中这样写一个切面:

pointcut setConfFile(String fileName): set(private static String ConfigPath.CONF_FILE)&&args(fileName);  // set()里面的private static修饰符也可以不要

around(String fileName):setConfFile(fileName)

{

proceed("这里是UT里面的希望替换的新内容");

}


这种方法貌似还是不能给final的变量打桩,还需要继续研究

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:50:21
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1833/
本文WWW.DOC100.NET DOC100.NET版权所有。