ioc容器实例化流程笔记

1. ApplicationContext和BeanFactory区别

Applicationcontext是beanfactory的子接口,拥有beanfactory的所有方法

applicationContext可以通过传一个xml配置文件或者配置类来自动创建bean,而beanfactory不可以,只能自己封装BeanDefinition然后手动创建

beanfactory占用内存小,可以用于嵌入式设备中

 

2.spring实例化的三种方式

反射,工厂方法,工厂类FactoryBean

比如说@component这种注解就是通过反射创建的,而@bean则是工厂方法,会解析到BeanDefinition中的factorymethod字段

 

3.

在ioc容器初始化过程中,解析成BeanDefinition后,是通过BeanFactory.getBean()方法来创建bean的,getBean方法其实是门面方法,是getBean方法中的dogetBean方法生产bean

 

4.factorybean

可以用来实例化bean 狸猫换太子

 

5.bean的生命周期

实例化 属性赋值 初始化(调用生命周期回调方法,调用aware方法) 销毁

 

6.创建bean的生命周期

userService类 -- 无参构造反射(推断构造方法) -- 原始对象 -- 依赖注入(先bytype后byname) -- 初始化前(@postConstrut)-- 初始化(实现initializingBean接口)-- 初始化后(AOP) -- 代理对象 -- bean

 

posted @ 2021-11-18 22:43  切勿动怒  阅读(53)  评论(0)    收藏  举报