diff --git a/pom.xml b/pom.xml index ea2594a..bf3b90d 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,11 @@ jackson-annotations 2.19.0 + + org.springframework.boot + spring-boot-starter-web + 3.4.7-SNAPSHOT + \ No newline at end of file diff --git a/src/main/java/cn/zhangdeman/RuntimeContext.java b/src/main/java/cn/zhangdeman/RuntimeContext.java index 8c5fd53..ef1bfc4 100644 --- a/src/main/java/cn/zhangdeman/RuntimeContext.java +++ b/src/main/java/cn/zhangdeman/RuntimeContext.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Getter; import lombok.Setter; +import org.springframework.web.context.annotation.RequestScope; import java.io.Serializable; import java.util.Map; @@ -15,6 +16,7 @@ import java.util.Map; @Getter @Setter @JsonIgnoreProperties(ignoreUnknown = true) // 忽略未知属性字段 +@RequestScope public class RuntimeContext implements Serializable { @JsonProperty(RecordField.REQUEST_ID) private String requestId; // 本次请求request id diff --git a/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java index 1db1c37..32e1b56 100644 --- a/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java +++ b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java @@ -11,6 +11,7 @@ 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.annotation.Autowired; import org.springframework.core.annotation.Order; import java.io.IOException; @@ -24,6 +25,9 @@ import java.util.Map; @WebFilter("/*") // 所有接口请求均会触发次过滤器 @Order(Ordered.REQUEST_ID) // 足够小, 保证最先执行 public class RequestInitFilter extends HttpFilter { + @Autowired + private RuntimeContext runtimeContext; + @Override public void init(FilterConfig filterConfig) throws ServletException { } @@ -34,7 +38,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 = new RuntimeContext(); setBaseInfo(httpServletRequest, runtimeContext); // 设置基础信息 setRequestQuery(runtimeContext.getRequestInfo()); // 设置请求query信息 setRequestBody(runtimeContext.getRequestInfo()); // 设置请求Body