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的自动装配。

    ——————————如果不豁出性命的话,也是无法开创未来的。
  • 相关阅读:
    第11条:用zip函数同时遍历两个迭代器
    第10条:尽量用enumerate取代range
    第9条:用生成器表达式来改写数据量较大的列表推导式
    MySQL的约束
    VMware下所有的系统网卡启动不起来
    windows下的mysql闪退问题
    大型网站架构模式
    MySQL的information_schema库
    mysql复制表结构和内容
    希尔排序 堆排序 归并排序
  • 原文地址:https://www.cnblogs.com/thirller/p/2866622.html
Copyright © 2011-2022 走看看