【发布时间】:2021-04-13 03:48:10
【问题描述】:
以前我的网关系统是使用 spring boot spring-boot-starter-web && rest template (阻塞) 创建的。
现在我想更改为使用 Webflux,因为响应式似乎更适合我的情况。 Performance Reference
以前我使用 AOP 来记录 HttpServletRequest 和 Filter && HttpServletRequestWrapper。例如:
RequestAttributes ra = RequestContextHolder.getRequestAttributes();
ServerHttpRequest servletRequest = ((ServletRequestAttributes) ra).getRequest();
String xForwardedFor = servletRequest.getHeader("X-FORWARDED-FOR");
String remoteAddress = StringUtils.isBlank(xForwardedFor) ? servletRequest.getRemoteAddr() : xForwardedFor;
我的问题是:是否可以使用 AOP 获取 ServerHttpRequest 进行日志记录?
我已阅读 this article 并且我认为这对我的情况来说还不够,例如记录客户端地址。
非常感谢 && 如果需要更多信息,请告诉我。 ????
【问题讨论】:
-
你好@vincent-tang 我也面临同样的问题。你有遇到什么解决办法吗?
-
@Merch0 很遗憾,不,我找不到任何仅使用 Webflux 的解决方案。我现在决定同时使用
spring-boot-starter-web&&spring-boot-starter-webflux。在 AOP 中,同样的方法获取 servlet 请求,ProceedingJoinPoint 继续后,订阅 if value instanceofFluxorMono。这应该工作????。
标签: java spring spring-boot spring-webflux spring-aop