package com.hundsun.jresplus.web.url; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.hundsun.jresplus.beans.ObjectFactory; /** * * @author LeoHu copy by sagahl copy by fish * */ public class URLBrokerLauncherInterceptor extends HandlerInterceptorAdapter implements InitializingBean { private static String myTag = "_" + URLBrokerLauncherInterceptor.class.getName(); private static String tagValue = "1"; @Autowired private ObjectFactory objectFactory; private Map<String, URLBroker> brokers; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Object tag = request.getAttribute(myTag); if (tag == null) { for (Entry<String, URLBroker> entry : brokers.entrySet()) { request.setAttribute(entry.getKey(), entry.getValue()); } request.setAttribute(myTag, tagValue); } return super.preHandle(request, response, handler); } public Map<String, URLBroker> getBrokers() { return brokers; } public void setBrokers(Map<String, URLBroker> brokers) { this.brokers = brokers; } public void afterPropertiesSet() throws Exception { List<URLBroker> regBroker = objectFactory .getBeansOfType4List(URLBroker.class); if (regBroker == null) { return; } if (brokers == null) { brokers = new HashMap<String, URLBroker>(); } for (URLBroker broker : regBroker) { if (broker.getName() == null) { continue; } if (brokers.containsKey(broker.getName())) { continue; } brokers.put(broker.getName(), broker); } } }