Spring揭秘-AOP

2018-05-31  本文已影响0人  行动的侏儒
  1. AOP的实现机制
    Spring AOP默认使用动态代理实现AOP机制,在运行期间为相应的接口生成对应的代理对象,当Spring AOP无法用动态代理实现时,它会使用CGLIB库的动态字节码增强支持实现AOP机制,动态字节码增强不像动态代理受限于必须实现对应的接口,他通过织入横切逻辑到模块类(final修饰的类除外)的子类实现。还有一种实现机制自定义类加载器,所有的class都需要加载到jvm中才能运行,自定义的类加载器在加载的过程中织入横切逻辑,然后将改动后的class交给jvm。
  2. AOP框架的组成
  1. Spring AOP实现Advice


    AOP类图
  2. AspectJ形式Pointcut表达
    execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throw-pattern?)
    例子:execution(public void Foo.set(String) throws Exception)
    用问号标志的可以省略execution(void set(String))。可以使用通配符*和..

代理和AOP调用demo代码

上一篇 下一篇

猜你喜欢

热点阅读