Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

springAOP核心组件分析 PDF 下载


分享到:
时间:2020-04-11 18:55来源:http://www.java1234.com 作者:小锋  侵权举报
springAOP核心组件分析 PDF 下载
失效链接处理
springAOP核心组件分析  PDF 下载

本站整理下载:
提取码:op3v 
 
 
相关截图:
 
主要内容:
进入AbstractApplicationContext类
841行 finishBeanFactoryInitialization()
857行:String[] weaverAwareNames//与AspectJ weaver相关的,
可以不关注
在869行,开始操作,初始化剩下的单实例bean,完成剩余bean的创
建,beanFactory.preInstantiateSingletons(),点进此方法
进入DefaultListableBeanFactory类,
734行:获取容器中所有的bean名,并遍历获取容器中所有的bean名,依
次进行初始化和创建对象(第一个bean跟我们关系不大),但我们可以看
看创建流程
738行:拿到bean的定义信息
739行:bean不是抽象, 是单实例, 不是懒加载
 如果满足这3条件,可以实例化bean
740行:工厂模式,是否实现FactoryBean接口的bean,如果是的话就会
调用FactoryBean的getObject来获取bean
755行 getBean(..),此方法为生成单实例bean的主要方法, 跟进此方
法,见右箭头
766行:所有bean都创建完后,触发初始化后置处理器的回调方法,其实
就是把所有的bean对象遍历,检查所有的Bean是否是
SmartInitializingSingleton接口的,如果是就执行
afterSingletonsInstantiated();
进入AbstractBeanFactory类,
198行:public Object getBean(String name){
return doGetBean(...); }//此处的getBean与测试用例anno.getBean()是同一个
继续跟进此方法,进入下面239行
239行进入此方法
246行:Object sharedInstance = getSingleton(beanName);第一
次获取先检查单实例的缓存中是不是存在此bean;
247行:if(sharedInstall != null)//缓存中有,就直接拿
269行:spring是否存在父子容器,直接跳过,没有父子工厂关系
287:markBeanAsCreated(beanName)//标记当前bean已被创建了,防
止在多线程情况下,两个线程同时来创建一个bean,那就不是单实例了
291行:RootBeanDfinition mbd //获取bean定义信息
295行:String[] dependsOn//获取当前bean依赖的其它bean,如果有
依赖的bean,就先把依赖的bean先创建出来,见304行
314行:if (mbd.isSingleton())//如果bean是单实例的
315行:lambda,传一个beanName进行创建bean
317行:若不能获取才到创建,return createBean(beanName;
spring就是利用这个机制,保证单实例bean的唯一, 点击跟进
createBean方法

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐