|
|
@@ -0,0 +1,31 @@
|
|
|
+package com.fs.common.filter;
|
|
|
+
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import org.springframework.core.Ordered;
|
|
|
+import org.springframework.core.annotation.Order;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.web.filter.OncePerRequestFilter;
|
|
|
+
|
|
|
+import javax.servlet.FilterChain;
|
|
|
+import javax.servlet.ServletException;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 请求结束后清理 PageHelper 线程变量,避免线程复用时把分页 LIMIT 拼到已有 limit 的 SQL 上。
|
|
|
+ */
|
|
|
+@Component
|
|
|
+@Order(Ordered.HIGHEST_PRECEDENCE + 20)
|
|
|
+public class PageHelperClearFilter extends OncePerRequestFilter {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
|
|
|
+ throws ServletException, IOException {
|
|
|
+ try {
|
|
|
+ filterChain.doFilter(request, response);
|
|
|
+ } finally {
|
|
|
+ PageHelper.clearPage();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|