spring ioc流程

1、加载xml文件
2、创建beanfactory,如果存在,销毁重新创建
3、通过xmlbeandefinitionreader指定BeanDefinitionDocumentReader去解析xml,生成document
4、将解析出来的bean的属性注册在BeanDefinitionHolder中的BeanDefinition对象中
5、将beanName作为key,BeanDefinition作为value,存入beanfactory的beanDefinitionMap中(如果xml内存在beanid相同的,就是以该map为依据进行判断)
6、ioc初始化完成后开始初始化非懒加载的bean
7、bean实例化spring通过两种方式实现,一种是BeanUtils方式,一种是cglib,默认采用cglib方式;BeanUtils方式通过构造器实例化bean,构造器通过配置的class反射得到
8、实例化后进行依赖注入,也是从BeanDefinition中获得propertity信息(xml大于注解),优先处理autowire注入
9、依赖注入时获取到引用的bean,通过beanfactory来实例化被依赖的bean
10、获取实例化的bean对象的PropertyDescriptor,然后获取get和set方法,如果set活着get方法不是public的,则设置方法为可访问setAccessible(true),然后invoke赋值     propertyvalue(保存一个bean的单独属性的值信息)




参考  :http://blog.youkuaiyun.com/z69183787/article/details/8443777
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值