请教大家: 我在使用 spring aop aspect 穿件一个切面的时候, Pointcut 表达式一直不能匹配,但是我找不到表达式错误的地方,麻烦大家帮我看看, 谢谢大家!!!

2017-03-01 11:40:50 +08:00
 palmers

我需要匹配 abc.cde.A.fun(cv.bc.F f,Map<String,String> map)方法,然后切面类中内容如下:

@Aspect
@Component
public class Inte {


    @Pointcut("execution(* abc.cde.A.fun(..))")
    public void pointcut() {
        //
    }



    @Before("pointcut()")
    public void bef() {
        System.out.println("before ---------called.......");
    }
}

以上, 当A#fun方法被调用的时候并没有进入bef方法, 然后我修改了上面Pointcut表达式为: execution(* *.*(..)) 则所有方法调用都会触发bef切面方法, 所以我spring配置应该是没有问题的.

第一次使用, 麻烦大家帮我看看 谢谢!!!

3748 次点击
所在节点    程序员
3 条回复
wc951
2017-03-02 20:52:13 +08:00
官方参考文档里切点使用的 private 修饰符,不知道和这个有没有关系
palmers
2017-03-02 21:03:26 +08:00
@wc951 不是的 大概是 idea 的问题, 在 eclipse 环境下是可以正常执行
wc951
2017-03-02 21:14:02 +08:00
但我感觉官方文档里说的公用切入点是要写全路径的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX