• Spring源码学习之Aop源码分析


      在使用Aop功能时要添加注解@EnableAspectJAutoProxy,所以这个注解就是Aop的入口了。这个注解的作用就是在Spring的后置处理器中添加一个处理器来处理springBean,使之成为一个代理对象。

    1 @Target({ElementType.TYPE})
    2 @Retention(RetentionPolicy.RUNTIME)
    3 @Documented
    4 @Import({AspectJAutoProxyRegistrar.class})
    5 public @interface EnableAspectJAutoProxy {
    6     boolean proxyTargetClass() default false;
    7 
    8     boolean exposeProxy() default false;
    9 }

      通过@Import注解进入AspectJAutoProxyRegistrar类中,这个类动态加载了spring的后置处理器

     1 class AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar {
     2     AspectJAutoProxyRegistrar() {
     3     }
     4 
     5     public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
     6         AopConfigUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(registry);
     7         AnnotationAttributes enableAspectJAutoProxy = AnnotationConfigUtils.attributesFor(importingClassMetadata, EnableAspectJAutoProxy.class);
     8         if (enableAspectJAutoProxy != null) {
     9             if (enableAspectJAutoProxy.getBoolean("proxyTargetClass")) {
    10                 AopConfigUtils.forceAutoProxyCreatorToUseClassProxying(registry);
    11             }
    12 
    13             if (enableAspectJAutoProxy.getBoolean("exposeProxy")) {
    14                 AopConfigUtils.forceAutoProxyCreatorToExposeProxy(registry);
    15             }
    16         }
    17 
    18     }
    19 }
  • 相关阅读:
    工作流程在线编辑
    利用IIS导出,导入快速部署 web站点
    调用CRM自己的Dialogue
    简单粗爆的解决同时布CRM引起的死锁问题
    CRM 2013 自动发送报表
    CRM 2013 中业务流程的
    调试CRM JS开发
    CRM ribbon按钮上引用JS库
    CRM Look Up 解决方案
    Windows Azure 上传 VM
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/12639892.html
Copyright © 2020-2023  润新知