zoukankan      html  css  js  c++  java
  • 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置




    复制依赖和改jar包方式

    src下的都复制过来。

    复制到新项目里了

    bean.xml里面复制上面一行代码到下面。把aop改成context。


    配置spring容器创建时要扫描的包


    Service的配置这里就可以删除了

    配置注解

    使用@Service注解

    开始AOP配置

    把通知类交给Spring来管理


    在Logger上加注解。之类注意,@Service和@Repository都不合适。因为logger属于三层


    所以这里用@Component这个注解来配置

    写完上面的@Component的注解后。bean.cml内的配置就可以删除了

    配置切面类


    注意Before这里是aspectj这个包里的,不要和JUnit的混了。





    环绕通知

    写完这些通知的注解就报错。因为没有切入点表达式

    这是我们之前的bean.xml内配置的切入点表达式

    新定义的私有方法pt1在pt1的上面定义的切入点表达式和注解

    beam.xml内这些就都可以删除了

    开启Spring开启注解AOP的支持

    引用注解表达式




    这里测试前面四个通知的时候,先把环绕通知注释掉

    测试


    后置居然在最终的前面了

    我们都知道 后置通知和异常是互斥的。这里把异常放开

    后置通知消失了 变成了异常通知


    Spring基于注解的,这四个通知确实有调用的顺序问题,所以我们在开发中,要有一个慎重的考虑

    环绕通知放开,其他通知都注释掉

    通知都注释掉

    环绕通知没有这个问题。这个也好理解,因为代码是我们自己写的 想让他什么时候执行,就什么时候执行

    把异常放开的执行效果

    如果用注解的话,更建议用环绕通知,因为注解在调用的通知顺序上有问题

    总结

    注解的配置确实比较简单。因为bean.xml配置就剩下这两行了

    切入点的配置也很规范

    演示下括号的问题

    只写了方法名 ,没写后面的括号

    这里其实已经提示报错了

    运行就会报错。

    不使用xml配置的方法


    讲义的最后


     

  • 相关阅读:
    将指定json格式的内容,写入文件中,构造测试数据
    shell对比用=时 记得加空格
    scp带私钥使用以及免密配置
    kafka知识补充
    根据frm和ibd文件恢复数据库表结构和数据
    登录页面 逻辑:当用户进来的时候, 全局检查一下是否有用户的信息,如果用则显示用户信息页面;没有,则显示用户登录页面
    理解Spring 容器、BeanFactory 以及 ApplicationContext
    Java 中 CAS
    volatile 关键字
    JenKins docker 集群
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11359708.html
Copyright © 2011-2022 走看看