如何使用特定类型的参数将方面定位到方法?
How to target aspect to method with argument of certain type?
如果我写我的方面
@Before("args(data)")
public void beforeMethod( MyParam data ) {
// ...
}
它将处理方法
public void m1(MyParam param){};
如果我把aspect写成
@Before("args(data,..)")
public void beforeMethod( MyParam data ) {
// ...
}
它将处理方法
public void m2(MyParam param, OtherParam param2, Object smthElse){};
但是MyParam param
应该是第一个。
问题是:如何配置 @Before("args(?)")
以匹配 MyParam param
不是此处第一个参数的方法?
@Before("args(?)")
public void m3(OtherParam param2, MyParam param, Object smthElse){};
无法测试,但这可能是一种方法 -
args(*, param, ..)
如果我写我的方面
@Before("args(data)")
public void beforeMethod( MyParam data ) {
// ...
}
它将处理方法
public void m1(MyParam param){};
如果我把aspect写成
@Before("args(data,..)")
public void beforeMethod( MyParam data ) {
// ...
}
它将处理方法
public void m2(MyParam param, OtherParam param2, Object smthElse){};
但是MyParam param
应该是第一个。
问题是:如何配置 @Before("args(?)")
以匹配 MyParam param
不是此处第一个参数的方法?
@Before("args(?)")
public void m3(OtherParam param2, MyParam param, Object smthElse){};
无法测试,但这可能是一种方法 -
args(*, param, ..)