二、通过aop清理无用文件
1、背景
我们测试的接口有一个添加图片的,功能就是把图片保存到tfs 上,并将一些信息保存到数据库。我们接口脚本并没有去清理这些无用的文件,导致一段时间后tfs的磁盘满了。
2、方案
有两种方案
1)在每次需要清理的case中增加一行处理,记录返回结果中的tfs地址,然后在@After 方法中,将其删除。这个方案我以前经常使用,清理数据库信息以及缓存等我都是这么干的,但问题我更改30个以上case,体力活,有点烦。
2)通过aop after-returning 模式,通过一个静态变量记录接口返回值中的tfs地址。这个方案比较省事,很适合解决这类问题。
3、实现
第一步:编写拦截类
public class RecordResultAspect { public void doAfterReturn(Response<FileDO> result) { |
第二步:spring配置
<aop:after-returning pointcut-ref="addfilePoint" method="doAfterReturn" returning="result"/> |
注:只列出了与上个例子不同的地方。
第三步:解决spring aop无法拦截无默认构造函数类的问题
后记:
1)过程中调试也遇到了不少问题,花了不少时间,但有了成长,感觉还是值得的。
2)人有时懒点,也不是什么坏事情。