gpt4 book ai didi

java - @Async @Aspect @AfterReturnung。我的方法有 HttpServletRequest 对象作为方法参数,但能够访问它我的 aop 方法

转载 作者:行者123 更新时间:2023-12-02 02:38:57 26 4
gpt4 key购买 nike

我正在尝试以异步模式通过 aop 记录 HttpServletRequest 内容。实现中切入点的方法将 HttpServletRequest 作为方法参数。我无法在异步模式下访问它,尽管代码在没有 @Async 注释的情况下可以正常工作。

@Async
@AfterReturning(pointcut = "execution(* com.web.dto.util.response.impl.ResponseImpl.prepareResponseDTO(..))", returning = "object")
public void logSearchJSON(JoinPoint joinPoint, final Object object) {
try {
List<Object> objects = getActivityParams(joinPoint);

UserActivity userPersonalization = null;
HttpServletRequest httpServletRequest = (HttpServletRequest) objects.get(0);
if (httpServletRequest.getRequestURI().contains(UserActivityConstant.filter))

httpServletRequest.getRequestURI() returns null.

没有 @Async 注释它工作正常

最佳答案

您是否正确声明了任务执行器?

您可以在 Spring 上下文中以这种方式执行此操作:

<task:annotation-driven executor="TaskExecutor"/>
<task:executor id="TaskExecutor"
pool-size="2-5"
queue-capacity="50"
keep-alive="120"
rejection-policy="CALLER_RUNS"/>

您也可以在 @Configuration 类中执行此操作。

关于java - @Async @Aspect @AfterReturnung。我的方法有 HttpServletRequest 对象作为方法参数,但能够访问它我的 aop 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com