![](/img/trans.png)
[英]Spring + AspectJ pointcut on CrudRepository and Annotation
[英]Spring aspectj annotation pointcut
我試圖在方法注釋上創建一個Aspectj切入點,但我總是以不同的方法失敗。 我正在使用aspectj autoproxy(我沒有在我的spring上下文中配置其他編織)。 我的課程看起來像這樣:
public interface Intf
{
@SomeAnnotation
void method1() throws SomeExc;
}
public class Impl implements Intf
{
@Override
public void method1() throws SomeExc
{
//...
}
}
@Aspect
public class MyAspect
{
@AfterThrowing(
pointcut = "execution(* *(..)) && @annotation(SomeAnnotation)",
throwing = "error")
public void afterThrowing(JoinPoint jp, Throwable error)
{
System.err.println(error.getMessage());
}
}
@Component
public class Usage
{
@Autowired
Intf intf;
public void doStuff()
{
intf.method1();
}
}
所以我想知道為什么aspectj不會創建切入點。 我設法讓它工作使用execution(* *(..) throws SomeExc)
為我做的工作,但我仍然想知道我做錯了什么。
此外,由於method1
是在接口中定義的,並且我在實現類上指定了注釋,有沒有辦法讓它以這種方式工作? 其他代理機制,如事務管理/安全性在彈簧的其他部分以這種方式工作嗎? 如果我使用接口代理將指定實現類的切入點創建切入點? (我猜不是因為我沒有使用cglib)
嘗試將@Component添加到MyAspect類
@Component
@Aspect
public class MyAspect {
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.