2012-06-29 45 views
1

攔截我加入一個現有的項目誰使用2個機制的前端與Spring MVC的:如何創建註解@Controller

  • A)控制器類擴展 org.springframework.web.servlet。 mvc.SimpleFormController
  • B)控制器類使用註釋@Controller。

現在,我發現了一個攔截器:

@Aspect 
public class RequestMonitor { 

    @Autowired 
    private RequestMonitorService requestMonitorService; 

    @Before("execution(* org.springframework.web.servlet.mvc.Controller+.handleRequest(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse))" 
      + "&& args(request,response)") 
    public void storeUserAccess(HttpServletRequest request, HttpServletResponse response) { 
     requestMonitorService.storeUserAccess(request); 
    } 
} 

誰趕上從org.springframework.web.servlet.mvc.Controller(機構A)

所有請求我如何能適應所有攔截其他帶有註釋「@Controller」的控制器:org.springframework.stereotype.Controller(mechanism B)

回答

3

您有HandlerInterceptorAdapter類。你可以擴展它,並利用該方法在子類:

public boolean preHandle(HttpServletRequest request, 
     HttpServletResponse response, Object handler) throws Exception 

public void postHandle(
     HttpServletRequest request, HttpServletResponse response, 
     Object handler, ModelAndView modelAndView) 
     throws Exception 

而且你需要註冊你的攔截器即:

<mvc:interceptors> 
     <bean class="my.fully.qualified.package.RequestInterceptor" /> 
</mvc:interceptors> 
+0

我們使用Spring 2.5,而不是3 :( – BasicCoder