SSM-Spirng-面向切面编程-SpringAop基本概念

SSM-Spirng-面向切面编程-SpringAop基本概念

​ Aop是通过动态代理模式,管控各个对象操作切面环境,管理包括日志,数据库事务等操作


面向切面编程的术语

  1. 切面(Aspect):能在被代理对象的方法之前,之后,产生异常或者返回正常值之后切入代码,甚至代替原来被代理对象的方法,在动态代理中可以理解成一个拦截器
  2. 通知(Adice):是切面开启后,切面的方法。根据在代理对象真实方法调用前,后的顺序和逻辑区分。
    • 前置通知(before):在动态代理反射原有对象方法或执行围绕通知前执行的通知功能
    • 后置通知(after):在动态代理反射原有对象方法或执行围绕通知后执行的通知功能。无论是否抛出异常,都会被执行
    • 返回通知(afterReturning)::在动态代理反射原有对象方法或者执行环绕通知后执行的通知功能
    • 异常通知( afterThrowing ):在动态代理反射原有对象方法或者执行环绕通知产生异常后执行的通知功能。
    • 环绕通知( aroundThrowing ):在动态代理中,它可以取代当前被拦截对象的方法,通过参数或反射调用被拦截对象的方法。
  3. 引入(Introduction):引入现有的类里添加的自定义的类和方法
  4. 切点(Pointcut):动态代理里,被切面拦截的方法就是一个切点,切面可以将切点和拦截的方法按照一定的逻辑植入到约定的流程当中
  5. 连接点(join point):连接点是一个判断条件,可以指定哪些是切点,spring会生成代理对象去使用对应的切面对其拦截,否则就不会拦截它
  6. 织入(Weaving):织入是一个生成代理对象的过程

在这里插入图片描述


Spring对AOP的支持

​ spring只是支持AOP编程的框架之一,是一种基于方法拦截的AOP,有四种方式实现AOP的拦截功能:

  1. 使用ProxyFactoryBean和对应的接口实现AOP
  2. 使用XML配置AOP
  3. 使用@AspectJ注解驱动切面
  4. 使用AspectJ注入切面

spectJ注解驱动切面
4. 使用AspectJ注入切面

注意:常用@AspectJ注解方法,XML为辅,其余少用

猜你喜欢

转载自blog.csdn.net/weixin_43958223/article/details/115245084