【发布时间】:2020-07-12 20:53:30
【问题描述】:
我正在开发一个小项目,该项目在测试 Java 应用程序时确定代码覆盖率。它基本上由一个用于 IDE 的插件组成,该插件查找项目中的所有类和方法并将它们保存在数据库中,以及一个带有 aspectJ 切入点的代理,它围绕所有这些方法编织以记录它们的执行。
我的问题是我只想记录由该项目的开发人员实际编写的方法,而不是底层库的方法。所以切入点需要定义为只编织实际项目包中类的方法。另一方面,由于代理要用于各种项目,我无法对这些包进行硬编码。
到目前为止,我的尝试是从数据库中读取所有包名并从中构建一个字符串。基本上它的样子是这样的:
private static final String POINTCUT_STRING = AspectUtil.buildPointcutString();
然后,在定义切入点时:
@Pointcut(POINTCUT_STRING)
问题是,这不起作用,因为显然在定义切入点时,
属性值必须是常量。
那么,我怎样才能使我只能在我的数据库中的包中的类中编织方法?
先谢谢了,祝你好运!
【问题讨论】:
-
你的MCVE在哪里?