• springAOP源码解析-190313


    Spring相关笔记

    SpringAOP讲解 子路老师讲解

    spring与aspectj的区别
    答:它们的区别是 spring是动态加载 aspectj是静态加载,再编译过程就已经实现切面,此时会往代码中注入一些代码。
    @Aspect 就说明切面
    @Pointcut 就是连接点 @Pointcut(“args(java.lang.String)”) 只要方法的参数第一个是String字符串就说明是一个连接点 (个人理解:日志管理可以用到相关知识)。
    以上注解可以结合官网学习相关知识

    spring动态代理用的那些方法:cglibAopProxy JDKDynamicAopProxy
    如何证明是在getBean使用的代理 ? 选择题:A getBean B 初始化
    最终是在DefaultLisableBeanFactory resoleveNamedBean方法 调用 AbstractBeanFactory中
    Srping初始化只会遍历单例
    微观上讲Spring容器就是一个存储单例对象的singletonObjects是 一个Map 。所以getBean的时候就是从map中获取对象所以 代理应该是初始化中使用的。以上选择题选择B初始化
    初始化的时候如何看到何时做的代理呢?
    答:我们可以找到singletonObjects的put方法。
    原生对象如何变成代理对象呢?
    答:BeanWrapper初始化后获取原生对象再经过 initializeBean方法的时候完成代理。其中涉及到后置处理器,spring就是有后置处理器构成 将原生对象变成代理对象时就是由ApplicationContextAware的后置处理进行改变的

  • 相关阅读:
    ASP.NET2.0中将文件上传到数据库
    C#中数据类型转换
    数据绑定以及Container.DataItem的具体分析
    CodeSmith开发系列资料总结
    Jquery信息专题收集
    microsoft .net framework专题汇总
    ASP.NET中插入FLASH代码
    javascript专题汇总
    经典SQL行列转换
    前台js调用后台c#方法
  • 原文地址:https://www.cnblogs.com/gnwzj/p/10526982.html
Copyright © 2020-2023  润新知