方法的入口:
进入到方法里面:
首先 进入到 refreshBeanFactory() 方法里面
refreshBeanFactory()
if-else
这一个就是起到 刷新工程 如果你已经存在了工厂就给你清空 并关闭重新给你整一个。 执行完后 执行后面的
createBeanFactory()
具体我就不点了 主要就是 创建DefaultListableBeanFactory对象 一直往父类走设置一些属性 比较有点用的 记一下:
这几个ignore 是为了 在进行创建的的时候进行忽略 不进行加载 由 spring的创建bean的流程我们可以知道,aware接口是在 bean进行初始化后 进行拓展的时候才需要使用aware接口来进行拓展,所以在开始的创建 beanfactory的时候 不需要进行管理:
这个方法执行完往回走:
setSerializationId
这个方法就是 给工厂设置个 id 进行 唯一识别 往下执行:
customizeBeanFactory
进来后是这样的方法 默认这连个值都是为null的 如果需要自己改的话 可以这样改: 执行完后 往下走:
loadBeanDefinitions(DefaultListableBeanFactory)!!!
这个方法比较重要 详细点击:点我
执行完上面的方法后:
beanfactory的值
一路返回执行完方法
总结:
根据前面配置好的 路径名string…(就是你传递的配置文件名称) 将这个字符串数组从String[] -string-Resource[]- resource,最终开始将resource读取成一个document文档,根据文档的节点信息封装成一个个的BeanDefinition对象
|