Parcourir la source

增加bdtp请求参数的统一拦截处理

zhaoyk il y a 3 ans
Parent
commit
f6f5609246

+ 27 - 0
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/config/InterceptorAdapterConfig.java

@@ -0,0 +1,27 @@
+package com.persagy.adm.diagram.config;
+
+
+import com.persagy.adm.diagram.frame.BdtpInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * 拦截器配置
+ */
+@Configuration
+public class InterceptorAdapterConfig implements WebMvcConfigurer {
+
+	@Bean
+	public BdtpInterceptor bdtpInterceptor() {
+		return new BdtpInterceptor();
+	}
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		//TODO 设置优先级
+		registry.addInterceptor(bdtpInterceptor());
+	}
+
+}

+ 28 - 0
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/frame/BdtpInterceptor.java

@@ -0,0 +1,28 @@
+package com.persagy.adm.diagram.frame;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 处理bdtp请求参数,创建/销毁请求对象封装
+ */
+@Component
+public class BdtpInterceptor extends HandlerInterceptorAdapter {
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+		BdtpRequest req = BdtpRequest.get(request.getParameter("groupCode"), request.getParameter("projectId"), request.getParameter("userId"));
+		BdtpRequest.setCurrent(req);
+		return true;
+	}
+
+	@Override
+	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+		BdtpRequest.removeCurrent();
+	}
+
+}

+ 17 - 0
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/frame/BdtpRequest.java

@@ -24,4 +24,21 @@ public class BdtpRequest {
 		return req;
 	}
 
+	/**
+	 * 线程变量,方便过程中使用请求对象
+	 */
+	private static ThreadLocal<BdtpRequest> threadLocal = new ThreadLocal<>();
+
+	public static void setCurrent(BdtpRequest bdtpRequest){
+		threadLocal.set(bdtpRequest);
+	}
+
+	public static BdtpRequest getCurrent(){
+		return threadLocal.get();
+	}
+
+	public static void removeCurrent(){
+		threadLocal.remove();
+	}
+
 }

+ 1 - 1
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/frame/ExceptionAspect.java

@@ -16,7 +16,7 @@ import org.springframework.stereotype.Component;
 @Slf4j
 public class ExceptionAspect {
 
-    @Pointcut("execution(public * com.persagy.diagram.controller.*Controller.*(..))")
+    @Pointcut("execution(public * com.persagy.adm.diagram.controller.*Controller.*(..))")
     public void handle(){
 
     }