`
javawangzilong
  • 浏览: 55401 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

@Aspect aop 重复执行

aop 
阅读更多
@Aspect使用中出现的一些问题:

  因为最近系统需求想记录后台管理员的操作日志,比如点击了什么按钮,做过什么操作,传入了什么参数,返回了什么结果,统统想记录下来,所以需要截取controller层面的每个方法。

所以我第一反应想到的就是面向切面。实现的方式也有很多种,在这里我使用的就是@Aspect注解。
中间出现的问题记录一下。
1.没有切到切面:
@AfterReturning(pointcut="execution(* com.admin.controller..*.*(..)))",
            returning="returnValue")
    public void afterOp(JoinPoint point, Object returnValue){
        try {
            xxx;
            }
        } catch (Exception e) {
            logger.error("记录系统管理员操作日志异常:"+e);
        }
在配置完之后发现对应的controller层的方法执行完毕之后,并没有跳转到对应的方法中,经过一系列资料查阅后,解决方法如下:
1.有可能execution表达式不正确,要注意包名,类名,方法名,入参的规则等等。
2.注解没有开启<aop:aspectj-autoproxy proxy-target-class="true"/>,(网上看一些博客上说这个需要配置到springmvc的配置文件当中,在spring的配置文件中是没有效果的)

2.方法重复执行:
因为我切的是所有的controller的方法,所以当我去点击查询列表页面的时候进入了两次这个方法,后来去看,是因为controller层中使用了@InitBinder注解,主要是用来对页面数据进行解析绑定的,例如时间格式等。
解决方法:
加上targer的方法判断过滤掉。

因为项目配置和使用的框架不同,可能遇到的问题也不相同,所以仅仅是作为参考
分享到:
评论

相关推荐

    spring4 AOP 面向切面编程@Aspect

    NULL 博文链接:https://zw7534313.iteye.com/blog/2221200

    Spring @Aspect注解

    Spring boot @Aspect简介使用场景列子1 (演示基本过程切点表达式切点复合运算切点匹配方法通知注解切面类执行顺序 简介 在 Spring实现 AOP面向切面编程, 是通过 @Aspect注解来实现切面的 使用场景 常见用于记录日志,...

    【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知

    在微服务流行的当下,在使用SpringCloud/Springboot框架开发中,AOP使用的非常广泛,尤其是@Aspect注解方式当属最流行的,不止功能强大,性能也很优秀,还很舒心!所以本系列就结合案例详细介绍@Aspect方式的切面的...

    Spring AOP @Aspect 基本用法

    1、@Aspect放在类头上,把这个类作为一个切面。 2、 @Pointcut放在方法头上,定义一个可被别的方法引用的切入点表达式。 3、5种通知。 3.1、@Before,前置通知,放在方法头上。 3.2、@After,后置【finally】...

    AOP@Work AOP 工具比较

    概述 AOP 工具当前的技术状况,比较对于该技术而言最成熟的一些方法:AspectJ、AspectWerkz、JBoss AOP、和 Spring AOP,并对比与每种方法的采用有关的问题。

    Spring加Aspect的jar包

    Spring+Aspect所需jars,包括Spring-aop、Spring-Aspect、aopalliance-1.0、Aspect Jweaver-1.8.7等包,个人学习时从各地凑出来的,送上资源免得各位大大们继续跟我一样还得花时间从各地一点一点地去凑这几个包。

    【Spring AOP】@Aspect结合案例详解(二): @Pointcut使用@within和within

    在微服务流行的当下,在使用Spring Cloud / Spring Boot框架开发中,AOP使用的非常广泛,尤其是@Aspect注解方式当属最流行的,不止功能强大,性能也很优秀,还很舒心!所以本系列就结合案例详细介绍@Aspect方式的切...

    Spring Aop实例(AOP 如此简单)@Aspect、@Around 注解方式配置

    Spring Aop实例(AOP 如此简单)@Aspect、@Around 注解方式配置

    springboot+aspect实现springaop拦截指定方法.zip

    项目中含有一整个springboot实现aop的功能,在拦截的方法形式上有两种一种是通过切点设置为拦截某个包路径下面的类中的所有方法;还有一种是基于某个自定义注解的.

    基于spring@aspect注解的aop实现过程代码实例

    主要介绍了基于spring@aspect注解的aop实现过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    aop,aspect相关jar包

    java开发过程中需要用到aspect,这时候需要用到相应的jar包。

    AOP 和 Aspect 注解切入 测试 Demo

    AOP 和 Aspect 注解切入 测试 Demo 1.ProxyFactory 基于 MethodBeforeAdvice、AfterReturningAdvice 利用 Spring Api...基于注解的形式:@Aspect、@PointCut、@Before、@Around、@After、@AfterRunning、@AfterThrowing

    41 注解 @Aspect 是如何工作的?慕课专栏(1)1

    背景面试官:如何针对某个包下的所有类的方法打印日志?面试者:可以使用 Spring AOP 的 @Aspect 注解实现,底层由 JDK 动态代理和 CGLib

    simpleAopDemo.zip

    一个简单的基于springboot的,使用了@Aspect AOP方式的一个应用实例,代码极简,易于理解学习。

    aop:aspect

    NULL 博文链接:https://chenhongwei0924.iteye.com/blog/845772

    Spring AOP的AspectJ支持jar包

    Spring AOP的AspectJ支持jar包; 包括: com.springsource.net.sf.cglib-2.2.0.jar com.srpingsource.org.aopalliance-1.0.0.jar com.srpingsource.org.aspectj.weaver-1.68.RELEASE.jar

    谈谈Spring AOP中@Aspect的高级用法示例

    在Spring AOP中目前只有执行方法这一个连接点,下面这篇文章主要给大家介绍了关于Spring AOP中@Aspect的高级用法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习...

    aspect所需要的jar

    包括aopalliance-1.0.jar,aspectjrt-1.8.10.jar,aspectjweaver-1.8.10.jar

    springMVC AOP拦截拦截Controller等实现日志管理

    Spring MVC AOP通过自定义注解方式拦截Controller等实现日志管理, springMVC里做添加AOP拦截,用于捕获异常。

Global site tag (gtag.js) - Google Analytics