gpt4 book ai didi

aop - Spring AOP建议被两次调用

转载 作者:行者123 更新时间:2023-12-04 09:23:45 24 4
gpt4 key购买 nike

我有以下Spring AOP建议,但无法查明为何将其两次调用:

@Component
@Aspect
public class LoggingAspects {

Logger logger = LoggerFactory.getLogger(LoggingAspects.class);

@AfterReturning(pointcut = "execution(public * com.A.B.C.service.impl.*.browse(..))",
returning = "retVal")
public Object onBrowse(DomainClass retVal) {
logger.info("#######################Advice Called: +retVal);
return null;
}

}

配置非常简单:
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

<bean id="loggingCASAspect" class="com.minervanetworks.xtv.stb.service.aspects.LoggingCASAspects"/>

我也尝试了以下建议,但结果相同(两次)。
@AfterReturning(pointcut="@annotation(com.A.B.C.service.impl.LOG)", returning="retVal")
public Object onBrowse(JoinPoint jp, DomainClass retVal) {
logger.info("#######################Advice called! " + jp.toLongString()
+ " Target: " + jp.getTarget()
+ " Signature: " + jp.getSignature()
+ " Kind: " + jp.getKind()
+ " This: " + jp.getThis()
+ " Source Location: " + jp.getSourceLocation());

return null;
}

来自上面的记录器的调试信息是:
2011-10-26 11:56:01,887 [INFO][com.A.B.C.service.aspects.LoggingAspects] #######################Advice called! execution(public abstract com.A.B.C.domain.DomainClass com.A.B.C.service.ContentManager.browse(java.lang.String,java.lang.String,java.lang.String,java.lang.Boolean)) Target: com.A.B.C.service.impl.ContentManagerImpl@62ad191 Signature: DomainClass com.A.B.C.service.ContentManager.browse(String,String,String,Boolean) Kind: method-execution This: com.A.B.C.service.impl.ContentManagerImpl@62ad191 Source Location: org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint$SourceLocationImpl@d324de2

它以完全相同的值显示两次。

最佳答案

1.提示

您使用JavaConfig还是xml?
如果您同时使用这两种方法,则可能是Spring IoC容器对Aspect进行了两次处理。

2.提示

我不使用@Component注释对方面进行注释,请尝试将其删除,可能是因为Spring对此进行了两次处理。

关于aop - Spring AOP建议被两次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900905/

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