博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-IOC学习
阅读量:4348 次
发布时间:2019-06-07

本文共 2692 字,大约阅读时间需要 8 分钟。

Spring Bean 的初始化过程.... 执行过程FileSystemXmlApplicationContext    ↓org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)刷新入口    ↓org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)实例化所有的(non-lazy-init)单例     ↓org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)Instantiate all remaining (non-lazy-init) singletons,进行遍历    ↓org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)调用获取动作doGetBean    ↓org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)获取共享实例sharedInstance    ↓org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)创建了一个内部的ObjectFactory,定义了一个内部getObject方法,然后    ↓org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)调用父类实现的createBean方法    ↓org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)判断一些条件后调用执行方法doCreateBean    ↓org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)大部分实例动作的包装类(包括485的createBeanInstance--构建实例、)    ↓org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)填充数据(下面就是判断、遍历填充数据)    ↓org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)    ↓org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:153)    ↓org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:353)    ↓org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:194)AbstractAutowireCapableBeanFactory的:createBeanInstance方法最后面// Need to determine the constructor...Constructor[] ctors = determineConstructorsFromBeanPostProcessors(beanClass, beanName);if (ctors != null ||        mbd.getResolvedAutowireMode() == RootBeanDefinition.AUTOWIRE_CONSTRUCTOR ||        mbd.hasConstructorArgumentValues() || !ObjectUtils.isEmpty(args))  {    return autowireConstructor(beanName, mbd, ctors, args);}// No special handling: simply use no-arg constructor.return instantiateBean(beanName, mbd);

 

转载于:https://www.cnblogs.com/javafengyi/p/3516551.html

你可能感兴趣的文章
Linux基础命令:kill
查看>>
Linux基础命令:ssh
查看>>
Linux基础命令:vmstat
查看>>
Linux基础命令:split
查看>>
linux基础命令:MD5sum
查看>>
Linux基础命令:dos2unix
查看>>
Linux基础命令:paste
查看>>
Linux基础命令:date
查看>>
Linux基础命令:uname和uptime
查看>>
Linux命令之nmap
查看>>
Linux基础命令:telnet
查看>>
Linux命令之wget
查看>>
Linux命令之dig
查看>>
Linux命令之tcpdump
查看>>
Linux命令之traceroute
查看>>
Linux基础命令:finger
查看>>
Linux基础命令:ping
查看>>
Linux系统基础优化
查看>>
SSH远程连接排错
查看>>
Linux shell基础
查看>>