《对线面试官》系列目前已经连载25篇啦!有深度风趣的系列!
- 【对线面试官】Java注解
- 【对线面试官】Java泛型
- 【对线面试官】 Java NIO
- 【对线面试官】Java反射 && 动态代理
- 【对线面试官】多线程基础
- 【对线面试官】 CAS
- 【对线面试官】synchronized
- 【对线面试官】AQS&&ReentrantLock
- 【对线面试官】线程池
- 【对线面试官】ThreadLocal
- 【对线面试官】CountDownLatch和CyclicBarrier
- 【对线面试官】为什么需要Java内存模型?
- 【对线面试官】List
- 【对线面试官】Map
- 【对线面试官】SpringMVC
- 【对线面试官】Spring基础
- 【对线面试官】SpringBean生命周期
- 【对线面试官】Redis基础
- 【对线面试官】Redis持久化
- 【对线面试官】Kafka基础
- 【对线面试官】使用Kafka会考虑什么问题?
- 【对线面试官】MySQL索引
- 【对线面试官】MySQL 事务&&锁机制&&MVCC
- 【对线面试官】MySQL调优
关键源码方法(强烈建议自己去撸一遍)
org.springframework.context.support.AbstractApplicationContext#refresh
(入口)org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization
(初始化单例对象入口)org.springframework.beans.factory.config.ConfigurableListableBeanFactory#preInstantiateSingletons
(初始化单例对象入口)org.springframework.beans.factory.support.AbstractBeanFactory#getBean(java.lang.String)
(万恶之源,获取并创建Bean的入口)org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean
(实际的获取并创建Bean的实现)org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#getSingleton(java.lang.String)
(从缓存中尝试获取)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])
(实例化Bean)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean
(实例化Bean具体实现)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstance
(具体实例化过程)org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#addSingletonFactory
(将实例化后的Bean添加到三级缓存)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean
(实例化后属性注入)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)
(初始化入口)
去网上看博客的时候,找到了几张比较好的图,这里贴下方便大家理解吧~
欢迎关注我的微信公众号【Java3y】来聊聊Java面试
【对线面试官】系列 一周两篇持续更新中!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。