save code

This commit is contained in:
白茶清欢 2025-06-05 19:05:42 +08:00
parent 3c921b3b01
commit a26af73e44

View File

@ -11,8 +11,13 @@ import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpFilter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Arrays;
@ -24,9 +29,11 @@ import java.util.Map;
// 初始化请求
@WebFilter("/*") // 所有接口请求均会触发次过滤器
@Order(Ordered.REQUEST_ID) // 足够小, 保证最先执行
@Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestInitFilter extends HttpFilter {
@Autowired
private RuntimeContext runtimeContext;
private ObjectFactory<RuntimeContext> requestScopedBeanFactory;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
@ -38,7 +45,7 @@ public class RequestInitFilter extends HttpFilter {
@Override
public void doFilter(HttpServletRequest httpServletRequest, HttpServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// RuntimeContext runtimeContext = new RuntimeContext();
RuntimeContext runtimeContext = requestScopedBeanFactory.getObject();
setBaseInfo(httpServletRequest, runtimeContext); // 设置基础信息
setRequestQuery(runtimeContext.getRequestInfo()); // 设置请求query信息
setRequestBody(runtimeContext.getRequestInfo()); // 设置请求Body