@Pointcut(Execution(@com.annotions.MyAnnotation void *(..))
如果我只想用@MyAnnotation建议方法,并且返回类型为void,这会是一个有效的切入点吗?
不,您的切入点会因为几个原因而无效,主要是因为您无法在实际应用程序中测试它,而只是在这里发布了伪代码:
@Pointcut
注释参数需要用双引号括起来,因为它是String
- 缺少一个右括号
)
- 关键字
execution
必须用小写字符书写,您的关键字以大写字符开头
除此之外,也就是说,如果你这样写切入点,它将是正确的:
@Pointcut("execution(@com.annotions.MyAnnotation void *(..))")
作为一种选择,您可以将这两个需求分离为不同的切入点说明符,如下所示:
@Pointcut("execution(void *(..)) && @annotation(com.annotions.MyAnnotation)")
在这种情况下,它可能看起来有点长,但如果您的执行切入点更复杂,最好将注释切入点从中分离出来,以便使整个切入点更具可读性。
我认为阅读SpringAOP和AspectJ手册可能会对您有所帮助。祝你好运,不要放弃,如果你经常使用AOP语法,它会变得更容易。