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)

 

例子随后补上

posted @ 2015-10-26 17:50  尾巴草  阅读(140)  评论(0编辑  收藏  举报