diff --git a/pom.xml b/pom.xml
index bf3b90d..7df0a8b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,6 +12,7 @@
21
21
UTF-8
+ debug
@@ -24,7 +25,8 @@
org.projectlombok
lombok
- 1.18.30
+ 1.18.38
+ provided
org.springframework
@@ -36,11 +38,6 @@
slf4j-api
2.0.17
-
- org.slf4j
- slf4j-log4j12
- 1.7.30
-
com.fasterxml.jackson.core
@@ -64,4 +61,17 @@
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+ 21
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/cn/zhangdeman/Main.java b/src/main/java/cn/zhangdeman/Main.java
index 2b54e55..a42f7d9 100644
--- a/src/main/java/cn/zhangdeman/Main.java
+++ b/src/main/java/cn/zhangdeman/Main.java
@@ -3,6 +3,5 @@ package cn.zhangdeman;
public class Main {
public static void main(String[] args) {
-
}
}
\ 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 5063ec3..76770dd 100644
--- a/src/main/java/cn/zhangdeman/RuntimeContext.java
+++ b/src/main/java/cn/zhangdeman/RuntimeContext.java
@@ -7,7 +7,6 @@ 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;
@@ -33,8 +32,6 @@ public class RuntimeContext implements Serializable {
private Long startTimeStamp; // 开始请求时间
@JsonProperty(RecordField.CONTEXT_DATA)
private Map logData; // 本条日志的上下文信息
- @JsonProperty(RecordField.RESPONSE_DATA)
- private Object responseData; // 响应数据
@JsonProperty(RecordField.REQUEST_INFO)
private Request requestInfo;// 请求信息
@JsonProperty(RecordField.RESPONSE_INFO)
@@ -42,7 +39,7 @@ public class RuntimeContext implements Serializable {
// 序列化
@Override
- public String toString() throws RuntimeException {
+ public String toString() {
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.writeValueAsString(this);
diff --git a/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java
index 2c63787..5636f2e 100644
--- a/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java
+++ b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java
@@ -11,8 +11,6 @@ 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;
@@ -29,8 +27,6 @@ import java.util.Map;
// 初始化请求
@WebFilter("/*") // 所有接口请求均会触发次过滤器
@Order(Ordered.REQUEST_ID) // 足够小, 保证最先执行
-@Component
-@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestInitFilter extends HttpFilter {
@Override
@@ -42,21 +38,21 @@ public class RequestInitFilter extends HttpFilter {
}
@Override
- public void doFilter(HttpServletRequest httpServletRequest, HttpServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
- RuntimeContext runtimeContext = new RuntimeContext();
- setBaseInfo(httpServletRequest, runtimeContext); // 设置基础信息
+ public void doFilter(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws IOException, ServletException {
+ RuntimeContext runtimeContext = new RuntimeContext(); // 运行时上下文数据
+ setBaseInfo(httpServletRequest,httpServletResponse, runtimeContext); // 设置基础信息
setRequestQuery(runtimeContext.getRequestInfo()); // 设置请求query信息
setRequestBody(runtimeContext.getRequestInfo()); // 设置请求Body
setRequestHeaderAndCookie(runtimeContext.getRequestInfo()); // 填充请求信息: header + cookie
setRequestId(runtimeContext); // 设置请求ID, 每次请求需要重新生成
httpServletRequest.setAttribute(RecordField.RUNTIME_THREAD_CONTEXT, runtimeContext); // 记录到请求上下文中
// 继续向后执行
- filterChain.doFilter(httpServletRequest, servletResponse);
+ filterChain.doFilter(httpServletRequest, httpServletResponse);
System.out.println("init request do filter 请求执行完成");
}
// 设置基础信息
- private void setBaseInfo(HttpServletRequest httpServletRequest, RuntimeContext runtimeContext) {
+ private void setBaseInfo(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, RuntimeContext runtimeContext) {
// request 信息
Request request = new Request();
request.setHttpServletRequest(httpServletRequest);
@@ -64,13 +60,14 @@ public class RequestInitFilter extends HttpFilter {
request.setRequestMethod(httpServletRequest.getMethod()); // 请求类型
request.setRequestContentType(httpServletRequest.getContentType()); // 请求类型
request.setRequestUri(httpServletRequest.getRequestURI()); // 请求uri
+ runtimeContext.setRequestInfo(request); // 请求信息
// server 信息
runtimeContext.setServerIp(httpServletRequest.getLocalAddr()); // 服务器IP
runtimeContext.setServerHostname(httpServletRequest.getLocalName()); // 服务器名称
- runtimeContext.setRequestInfo(request); // 请求信息
runtimeContext.setStartTimeStamp(System.currentTimeMillis()); // 开始请求时间
// 响应信息
Response response = new Response();
+ response.setHttpServletResponse(httpServletResponse);
response.setHeader(new HashMap<>());
response.setCookie(new HashMap<>());
runtimeContext.setResponseInfo(response); // 响应信息