zoukankan      html  css  js  c++  java
  • 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的后置处理进行改变的

  • 相关阅读:
    硬件加速器为人工智能应用服务
    js 获取指定字符串个数
    js 仿微信投诉—引入vue.js,拆分组件为单个js
    css 图片波浪效果
    svg path命令
    谷歌浏览器—打断点调试页面
    js 实现加载百分比效果
    js 实现纵向轮播
    css 图片高度自适应
    js 禁止/允许页面滚动
  • 原文地址:https://www.cnblogs.com/gnwzj/p/10526982.html
Copyright © 2011-2022 走看看