我想创建一个本质上是动态的切入点表达式。 我有三个包 - 包1, 包2, 共同aspectj/spring中的动态切入点表达式aop
共同应始终inculded和基于系统属性我想在任何给定的时间来加载包1或包2
类似下面
private static final String PACKAGE = System.getProperty("packagePrefix");
@Around("execution(* "+PACKAGE+"..*.*(..)) && execution(* ..common.*(..))")
我该如何做到这一点?
编辑:
我发现this这是很有趣的,我想能解决我的要求,但没有能够得到它的工作 所以这个环节说,有一个像下面
@Aspect
public abstract class MyAspect {
protected abstract pointcut();
@Before("pointcut()")
public void myAdviceMethod() {
// Advice code goes here
}
}
public class ConcreteAspect extends MyAspect {
@Pointcut("execution(* com.acme.*.*(..))")
protected pointcut() {
)
}
下面包含在我的Java配置中
@Bean
public ConcreteAspect myAspect() {
return new ConcreteAspect();
}
但是,嗷嗷错误:
java.lang.IllegalArgumentException异常:在错误:: 0找不到引用 切入点切入点
我想在运行时,它不是能找出被覆盖的切入点方法,因此无法解决切入点。 任何想法如何解决这个问题?
感谢Sharmila的回应。但是这个PACKAGE将如何放置在你的第二个切入点中?记住PACKAGE是字符串,它在运行时从系统属性获得值 – SCoder