spring ioc流程
来源:互联网 发布:网页设计制作软件 编辑:程序博客网 时间:2024/06/18 13:39
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.csdn.net/z69183787/article/details/8443777
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.csdn.net/z69183787/article/details/8443777
阅读全文
0 0
- Spring IoC流程
- spring ioc流程
- Spring IOC(整体流程)
- Spring ioc容器启动流程
- Spring IOC原理和流程
- Spring ioc容器启动流程—obtainFreshBeanFactory
- spring AOP配置方法 与 IoC容器的执行流程
- 1.spring-boot启动流程以及IOC容器创建
- IOC、Spring的IOC
- Spring IoC
- [Spring]IoC
- Spring IOC
- Spring IOC
- spring IOC
- Spring IOC
- Spring IOC
- Spring Ioc
- Spring IoC
- 数据结构之单链表
- try finally执行顺序
- 《Win32多线程程序设计》C++中的多线程
- C++实验16
- SQL语句之分组排名
- spring ioc流程
- Hadoop学习(三)— hdfs : NameNode与DataNode的实现机制
- 垃圾收集与分配策略——(四)垃圾收集器
- 移动端页面适配的rem换算
- 【20170928】C语言每日一练
- R语言S4类应用的一个简单例子
- spring事务隔离级别和数据库的隔离级别有什么不同
- JAVA "Public", "Protected", "Private" and "Friendly"的区别--笔记
- [新手题]不寻常的求和 python