我想創建一個本質上是動態的切入點表達式。 我有三個包 - 包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