[英]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.