以XmlBeanFactory為例,最簡單的取bean方式是:
Bean的配置檔案内容也很簡單:
先看起始點,載入先走AbstractBeanFactory
doGetBean方法中:
}
通過new ObjectFactory()的回調方法,回調目前類繼承的createBean方法,該方法在父類AbstractAutowireCapableBeanFactory中:
AbstractAutowireCapableBeanFactory->
進入AbstractBeanFactory中的protected Class resolveBeanClass方法:
轉入doResolveBeanClass:
AbstractBeanDefinition->resolveBeanClass
再來看forName做了些什麼
ClassUtils ->
最終将class load進來。
Bean執行個體化過程:
AbstractAutowireCapableBeanFactory->createBeanInstance
進入
AbstractAutowireCapableBeanFactory->instantiateBean
SimpleInstantiationStrategy->instantiate
再來看BeanUtils的執行個體化方法,比較簡單,直接用反射的構造函數來newInstance。
BeanUtils->