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配置的方法


    讲义的最后


     

  • 相关阅读:
    Docker大行其道—镜像
    Google 推出全新的两步验证机制
    安全警告——“Windows已经阻止此软件因为无法验证发行者”解决办法
    Word2010 自动生成二级编号
    正则表达式判断汉字
    c# IList<T> 深拷贝
    C#IList 取区间数据
    Oracle 同环比排除分母0
    Git 删除服务器的远程分支
    【转】C#获取当前路径7种方法
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11359708.html
Copyright © 2011-2022 走看看