java - Spring AOP @Pointcut 未触发

标签 java spring aop

我想在调用另一个类的特定方法时触发一个方法,这就是我考虑使用@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/

相关文章:

java - 将 JSON 字符串反序列化为 POJO 列表

java - 如何创建 spring 参数化事务测试

未找到 Spring 配置

java - 使用AOP和Guice 3在第三方代码中将 `new Socket()`重新定义为 `new Bar()`?

java - 什么是\xHEX 字符?是否有它们的表格?

Java "instanceof"添加多个列表

java - 如何将具有透明背景的多色图像导入android studio?

java - @RequestMapping 方法中的 spring mvc 中使用哪种返回类型?

c# - 基于配置文件的动态日志记录

c# - 带有 Ninject 拦截、CaSTLe DynamicProxy 和 WPF 窗口的 AOP : Can't find XAML resource in DynamicProxy of window