我想出來一個主控制器,將負責根據需要調用多個控制器(一個或多個),合併數據,過濾數據並將其返回。消費者不需要擔心繫統中的這些多個端點。他們只是談論這個主要終點。春天控制器來調用其他控制器
這是正確的做法嗎?請建議
ModelAndView handle(HttpServletRequest request, HttpServletResponse response) throws Exception {
final HandlerMapping handlerMapping = applicationContext.getBean(HandlerMapping.class);
final HandlerExecutionChain handler = handlerMapping.getHandler(request);
assertNotNull("No handler found for request, check you request mapping", handler);
final Object controller = handler.getHandler();
// if you want to override any injected attributes do it here
final HandlerInterceptor[] interceptors =
handlerMapping.getHandler(request).getInterceptors();
for (HandlerInterceptor interceptor : interceptors) {
final boolean carryOn = interceptor.preHandle(request, response, controller);
if (!carryOn) {
return null;
}
}
final ModelAndView mav = handlerAdapter.handle(request, response, controller);
return mav;
}
@RequestMapping(value = "/query", method = RequestMethod.POST)
public ModelAndView execute() throws Exception {
request.setRequestURI("/test.html");
request.setMethod("GET");
return handle(request, response);
}
但我需要一個控制器,可以使用多個控制器。 – Srini 2012-02-17 13:12:45
假設如果UI需要3個休息端點的數據。而不是UI進行所有這些調用,我得到了可以與其他控制器一起工作的Contoller(3個端點),過濾數據並將其返回。而不是3個http請求,我用1個http請求來完成。 UI與這一個主要端點進行對話。感謝您的反饋。 – Srini 2012-02-17 13:19:09
所以你有一個控制器和不同的服務? – Ralph 2012-02-17 13:40:58