我覺得有一些混亂,我沒有使用這兩個在我的控制器下面的方法。我只是使用「doMethod(HttpServletRequest請求)」。我的建議然後適用並據此工作。我的問題是「doMethod(HttpServletRequest請求)」不需要HttpServletRequest參數,只有應用於它的建議會使用它。所以我想知道是否可以將我的方法從「doMethod(HttpServletRequest請求)」更改爲「doMethod()」,但仍然能夠攔截HttpServletRequest並應用其建議(因爲我知道spring有權訪問它)
Spring MVC中,你可以有一個方法,像這樣:
@RequestMapping
public void doMethod() {
//some logic here
}
如果我需要一些其他的說法,我可以改成這樣:
@RequestMapping
public void doMethod(HttpServletRequest httpServletRequest) {
//some logic with request
}
和春天將委託相同的方法無論哪種方式,但填寫我的論點,如果我加上它ough一些巫術(我不明白)
我的問題做的是AOP的時候,像這樣:
@Before(value=(execution(* * com.domain.package.doMethod(..)), argNames=httpServletRequest)
public void advice(HttpServletRequest httpServetRequest) {
//some before advice
}
應用第二種方法的定義時,這是有道理的,但我怎麼能得到這個工作與第一個不包含'HttpServletRequest'參數?