zoukankan      html  css  js  c++  java
  • Spring AOP的认识

    1.常用到AOP的地方:日志记录、安全检查、事务管理等(避免了在多处编写同样的方法)

    2.AOP的三种织入方式:1)编译期,2)类装载器,3)运行期

      两种典型的实现方式:1)AspectJ-- 最全的面向切面框架,2)Spring 的AOP实现-通过引用AspectJ,常与Spring的IOC整合一起使用

      利用动态代理实现AOP--实现了InvocationHandler的接口

      JDK动态代理--通过JdkDynamicProxyFactory来实现

      CGLiB是运行时生成动态字节码

     3.常用的术语:Aspect切面、Joinpoint连接点、Pointcut切入点、Advice增强、Introduction引介、Weaving织入、Interceptor拦截器、Target Object目标对象、AOP Proxy AOP代理、

    4常用的Advice:1)MethodBeforeAdvice 2)AfterReturningAdvice 3)ThrowAdvice 4)MethodInterperctor--环绕通知,可实现前三个的功能

    5.ProxyFactoryBean装配Bean,返回的对象是一个增强之后的AOP代理。

    6.Advisor---PointcutAdvisor,包含了一个Pointcut和Advice。常用的两个Advisor(NameMatchMethodPointcutAdvisor和RegexpMethodPointcutAdvisor).

    7.使用自动代理:通过BeanPostProcessor来 实现,常用的实现类:1)BeanNameAutoProxyCreator,根据id和name来自动查找 2)DefaultAdvisorAutoProxyCreator根据容器的Advisor来决定Bean是否可以被代理 3)AspectJInvocationContextEXposingAdvisorAutoProxyCreator,根据AspectJ的语法规则 来决定4)AnnotationAwareAspectJAutoCreator,根据AspectJ的注解来决定。

    8.引介Introduction的使用:只能作用于类,可以为一个类动态地添加接口

    9.AOP代理的改变:ProxyFactoryBean的frozen属性,来防止修改AOP代理对象

    10.@AspectJ实现AOP,Aspect.Advice,Pointcut的声明,通过<aop:aspectj-autoproxy/>来配置AOP的自动装配。

    ——————————如果不豁出性命的话,也是无法开创未来的。
  • 相关阅读:
    Django重要组件(Auth模块)
    Django框架深入了解(总结整理)
    ORM(数据库对象关系映射)代码重写
    Django框架深入了解——DRF之序列化、反序列化
    让无线更自由 TOTOLINK EX750无线中继评测
    matlab常用知识
    点云数据
    运动恢复结构
    Ubuntu下简单的QT绘图程序
    英语词语解释
  • 原文地址:https://www.cnblogs.com/thirller/p/2866622.html
Copyright © 2011-2022 走看看