package com.smtservlet.resolver; import javax.servlet.http.HttpServletRequest; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.AbstractHandlerMapping; import com.smtservlet.core.SMTApp; import com.smtservlet.core.SMTApp.SMTRequestConfig; public class SMTRequestMapping extends AbstractHandlerMapping { public SMTRequestMapping() { } @Override protected Object getHandlerInternal(HttpServletRequest request)throws Exception { // 通过request获得url SMTRequestConfig requestConfig = SMTApp.getRequestConfig(request); if(requestConfig == null || requestConfig._mapBean == null) return null; // 如果requestConfig._mapHandler未缓存,则缓存之 synchronized(requestConfig) { if(requestConfig._mapHandler == null) { requestConfig._mapHandler = new HandlerMethod(requestConfig._mapBean, requestConfig._mapMethod); } } return requestConfig._mapHandler; } }