변수

2010-02-08 5 views
4

내가 일치하는 포인트 컷을 만들 포함하는 모든 방법에 대한 AspectJ의 포인트 컷 서명과 일치하려고하면 ModelMap을 포함 내 웹 컨트롤러의 모든 방법 :변수

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

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

내 문제는이 단지이다 메서드가 인 경우에만 ModelMap 매개 변수와 일치하고 다른 매개 변수는 매개 변수가 너무 많아서 일치하지 않습니다. 가능한 모든 매개 변수 조합에 대한 포인트 컷 대리인을 추가하지 않고,

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

가 ModelMap 매개 변수와 함께 모든 방법과 일치 할 수있는 방법이 있나요 : 예를 들어,이 때문에 "REQ"매개 변수에 차단되지 않는 이유는 무엇입니까?

답변

4

유연한 방법으로 인수를 표현하려면 와일드 카드 * 또는 ..을 사용할 수 있습니다.

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

AspectJ: parameter in a pointcut

+0

감사를 참조하십시오. 그게 내가 원하는,하지만 그것은 오히려 하나 이상의 인수를 기대하고 있기 때문에 pointcut 더 이상 내 "요청 (ModelMap modelMap)"메서드를 일치하지 발생합니다. – seanhodges

+0

예, 저의 답변에 링크 된 게시물과 관련된 문제입니다. ".."로 시도하거나 두 개의 pointcuts "*, modelMap"및 "modelMap"을 만듭니다. – ewernli

+0

2 pointcuts 만들기, 감사합니다. – seanhodges