4

ModelMapを含むWebコントローラーの任意のメソッドに一致するポイントカットを作成したいと思います。

pointcut addMenu(ModelMap modelMap) : 
    execution (public String example.web.MyController.*(..)) && args (modelMap);

before(ModelMap modelMap) : addMenu(modelMap) {
    // Do stuff with modelMap...
}

私の問題は、これはModelMapパラメーターのみを持つメソッドにのみ一致し他のメソッドにはパラメーターが多すぎるために一致しないことです。たとえば、「req」パラメータが原因で、これは傍受されません。

public String request(HttpServletRequest req, ModelMap modelMap) {
    // Handle request
}

考えられるすべてのパラメーターの組み合わせに対してポイントカットデリゲートを追加せずに、すべてのメソッドをModelMapパラメーターと一致させる方法はありますか?

4

1 に答える 1

4

ワイルドカードを使用する*..、引数を柔軟な方法で表現できます。

pointcut addMenu(ModelMap modelMap) : 
    execution (public String example.web.MyController.*(..)) && args (*, modelMap);

AspectJ:ポイントカットのパラメータを参照してください

于 2010-02-08T16:13:34.960 に答える