zoukankan      html  css  js  c++  java
  • Spring总结(二)(AOP)

    springAOP的原理:

       1、当启动spring容器的时候,

             <bean id="classDao" class="cn.itheima03.spring.aop.xml.ClassesDaoImpl"></bean>

             <bean id="myTransaction" class="cn.itheima03.spring.aop.xml.MyTransaction"></bean>

           把这两个bean创建对象了

       2、解析aop:config

            1、解析切入点表达式,把表达式解除出来以后和spring中的bean进行匹配

            2、如果匹配成功,则为该bean创建代理对象,在创建代理对象的过程中,把目标方法和通知结合在一起了

               如果匹配不成功,则直接报错

            3、当客户端调用context.getBean时,获取到的

                                              1、如果该对象有代理对象,则返回代理对象

                                              2、如果该对象没有代理对象,则返回对象本身

    说明:

       spring容器内部会自动判断:

                  如果目标类实现了接口,则采用jdkproxy

                  如果目标类没有实现接口,则采用cglibproxy

    前置通知:

       1、在目标方法之前执行

       2、无论目标方法遇到异常都执行

    后置通知:

       1、在目标方法之后执行

       2、如果目标方法遇到异常,则不执行

       3、可以获取连接点的一些信息

    最终通知:

       1、相当于finally

       2、无论目标方法是否遇到异常,都执行

    异常通知

       1、获取目标方法抛出的异常信息

       2、throwing参数的配置才能获取信息

    环绕通知

       相当于jdkproxy的invoke方法  能控制目标方法的执行(JointPointProceed)

    例子随后补上

  • 相关阅读:
    C语言、指针(七)
    C语言、指针(六)
    C语言、指针(五)
    Android进阶之绘制-自定义View完全掌握(三)
    Android进阶之绘制-自定义View完全掌握(四)
    Android进阶之绘制-自定义View完全掌握(五)
    版本管理·玩转git(快速入门git)
    版本管理·玩转git(推到远程仓库)
    版本管理·玩转git(团队合作)
    版本管理·玩转git(日志查看与版本切换)
  • 原文地址:https://www.cnblogs.com/xiaoying1245970347/p/4911917.html
Copyright © 2011-2022 走看看