诚实的码农 2018-07-07 14:49 采纳率: 100%
浏览 1663
已采纳

关于spring中AOP切入点表达式问题

    @Before("execution(* xxx.controller..*(..)")
    public void logController2(){
        System.out.println("控制层注入");
    }

    @Before("within(xxx.service..*)")
    public void logService(){
        System.out.println("业务层注入");
    }
不知道为什么后一个within在容器启动时就会调用10次左右,![图片说明](https://img-ask.csdn.net/upload/201807/07/1530974872_839802.png),
然后调用一次service请求也会调用它好多次,正常对我这个程序而言应该只有两次才对,而上一个execution则是正常的,如果我不使用注解使用xml配置那么within则可以正常使用,真是郁闷,我新手,搞不懂为什么.!![图片说明](https://img-ask.csdn.net/upload/201807/07/1530974914_642651.png)请大神帮忙看一下


//补充一下,我的问题是为什么使用within(..*)以后会出现调用切面很多次的原因,不是问使用的格式!然后新发现使用@Around环绕使用within指定service直接所有service接口报错-说什么关于接口“xxx”的静态初始化不支持编译器限制的错误.
  • 写回答

5条回答 默认 最新

  • 200公斤的孩子 2018-07-24 02:49
    关注

    之前在对controller使用aop的时候,在controller中使用了@initbinder注解,也造成的一个请求多次进入切点方法的情况。你可以参考一下这种情况的解决方案

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?