spring加载bean的流程
2024-02-06 18:58:48 4 举报
Spring加载bean的流程主要包括以下几个步骤:首先,通过ClassPathXmlApplicationContext或FileSystemXmlApplicationContext等类加载配置文件;然后,通过BeanDefinitionReader读取配置文件中的信息,解析出bean的定义信息;接着,根据解析出的bean定义信息,通过DefaultListableBeanFactory创建bean实例;最后,将创建好的bean实例注册到容器中,等待后续使用。在整个过程中,Spring还会对bean进行一些额外的处理,如属性注入、AOP代理等。
作者其他创作
大纲/内容
通过beanName,从容器中获取bean对象
加载所有非懒加载的bean
createBean(....)获取实例化策略,调用反射方法创建bean
get方法
主线流程
singletonFactory,是ObjectFactory类型的,是一个接口。用匿名类实现该接口——lambda表达式,实现接口的getObjects方法。这里的实现,实际上去调用了createBean方法
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(\"application.xml\");User user = (User) context.getBean(\"user\");
()->{}
容器已创建,直接取缓存中的
get(beanName)
使用bean对象
singletonObjects
beanDefinitionMap
getObject方法
容器创建时,缓存中没有数据,所以需要实例化bean
refresh
后置处理器。。。注册监听器。。。
匿名类lambda表达式singletonFactory
开始
set方法
获取bean工厂
设置configLocations数组
调用bean工厂的getBean(beanName)
构造方法
结束
调用doGetBean方法
创建bean工厂
configLocations配置文件路径
取缓存中的
从xml文件、注解中加载配置信息
配置信息转换为beanDefinition。并存储在容器中
缓存中是否有
beanFactory
创建容器
0 条评论
下一页