gpt4 book ai didi

java - Spring AOP @Pointcut 未触发

转载 作者:行者123 更新时间:2023-12-01 05:16:08 24 4
gpt4 key购买 nike

我想在调用另一个类的特定方法时触发一个方法,这就是我考虑使用@Pointcut的原因。

下面的代码与我正在编写的代码几乎相同,我不知道还需要添加什么。

public class OrgManagerImpl implements OrgManager {
public IOrg getOrg(String orgShortName) {
}
}

这是应该触发的类:

@Aspect
public class OrgManagerSynchronizer {

@Pointcut("execution(* com.alvin.OrgManager.getOrg(..))")
public void classMethods() {}

@Before("classMethods()")
public void synchronize(JoinPoint jp) {
//code should be executed. but does not execute.
}
}

在我的 .xml 中指定了:

aop:aspectj-autoproxy

我还应该添加什么?接下来做什么?

最佳答案

检查以下内容。

1) 检查 OrgManagerImpl 是否在上下文 xml 中定义为 bean,或者在您拥有的上下文 xml 或该类的包中标记为 @Component &。

2)如果上面的事情是正确的,那么尝试如下更改切入点

@Pointcut("execution(* get*(..))")

该切入点拦截所有 get 方法。看看这个点切你的同步方法是否有效。如果它有效,那么至少你的 Spring 配置是好的。你只需要改进切入点表达式。但如果这也不起作用,那么你的 spring aop 配置本身就有问题,所以我们可以集中精力解决这些问题。

此外,如果这不起作用,请尝试提供更多信息,例如上下文 xml、bean java 类等。

关于java - Spring AOP @Pointcut 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184104/

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