带注释参数的切入点匹配方法
2022-09-03 01:39:28
在以下情况下,我需要创建一个与方法匹配的切入点的方面:
- 是公开的
- 它的类用@Controller注释(最后没有)
- 它的一个参数(可以有很多)用@MyParamAnnotation注释。
我认为前两个条件很容易,但我不知道是否有可能用春天完成第三个条件。如果不是,也许我可以把它改成:
- 它的参数之一是 com.me.MyType 类型的实例(或实现某些接口)
你认为有可能实现这一目标吗?性能会好吗?
谢谢
编辑:匹配方法的一个示例。如您所见,MyMethod没有注释(但可以)。
@Controller
public class MyClass {
public void MyMethod (String arg0, @MyParamAnnotation Object arg1, Long arg3) {
...
}
}
编辑:我最终使用的解决方案,基于@Espen答案。正如你所看到的,我稍微改变了我的条件:类实际上不需要是@Controller。
@Around("execution(public * * (.., @SessionInject (*), ..))")
public void methodAround(JoinPoint joinPoint) throws Exception {
...
}