Spring_Aop的xml和注解的使用

动态代理:

    目的:在不改变源代码的情况下,对方法进行增强!
    
    动态代理又分为两种:
    1.第一个就是基于接口的动态代理,他是由jdk提供的
    2.基于子类的动态代理:cglib提供的:要想使用基于子类的动态代理:就必须得导入cglib的jar包
    
    特性:被代理对象的任意方法
    

Spring_aop:总结
aop(Aspect Oriented Programming) :面向切面编程

切面:相对于业务主线的额外的功能模块
在不改变程序源代码的情况下对方法进行增强

aop的底层原理就是动态代理
    aop的底层他会自动的根据代码,选择是使用基于还是使用子类的动态代理!
    
    使用aop进行编程有啥好处呢?
        1.简化业务代码
        2.维护简单
        
        Aop相关术语
        Joinpoint(连接点):执行的方法
        pointcut(切入点):被增强的方法
        Advice(通知/增强):就是额外的功能模块
            前置通知
            后置通知
            异常通知
            最终通知
            环绕通知
            Aspect(切面):
                对那个方法进行怎样的增强
        学习Aop重点关注的事情是啥呢?
        1.重点关注的是一个一个的额外的功能模块
        2.aop的配置
第三 spring Aop的开发流程
            定义一个切面类
            普通的Java类,在这个类中通过一个一个的方法对目标对象进行增强
            
            2.配置Aop
                在xml里面配置文件中aop
                i.将切面类交给spring管理
                
                ii.声明Aop配置
                <aop:config>
                iii.定义切入点
                aop:pointcut
                iiii.定义通知类型
                <aop:aspect ref = "切面类的引用">
                    前置通知
                    <aop:before method="切面类的方法名" pointcut-ref="切入点表达式是引用"/>
                    后置通知<aop:afterRunturning method="切面类的方法名" pointcut-ref="切入点表达式是引用"/>
                    异常通知<aop:after-throwing method="切面类的方法名" pointcut-ref="切入点表达式是引用"/>
                    最终通知<aop:after method="切面类的方法名" pointcut-ref="切入点表达式是引用"/>
                    注意:异常通知只有出现了异常了 才会有通知
                </aop:aspect>
                基于注解的Aop配置(结合xml)
            1.将切面类交给spring管理
            2.使用注解的形式代替xml中的aop的配置
            3.使用注解配置spring的ioc或者aop的时候都需要开启对注解的支持!
            
            注意:使用注解配置Aop和xml配置Aop在后置通知的时候,有一些差别!
            注解的配置:是最后执行后置通知!
            
            纯注解配置Aop
            1.声明配置类
            2.开启对ioc的支持
            3.开启对aop注解的支持
            @EnableAspectJAutoProxy
            
开发步骤以及代码的解释
        <!-- 将切面类交给spring管理 -->
        <bean >希望对大家有帮助