Spring Bean 的加载过程一个是populateBean,一个是initializeBean,这两个方法完成了bean的赋值与初始化。 这里有一个BeanDefinitionValueResolver,这个类用来解析property里的value,如果是依赖其他bean则会到容器中找是否存在如果有则返回,没有则创建一个。spring又为每个对象的属性定义了一个数据结构:PropertyValue,这样做加大了容器对bean属性的修改的灵活性,上面的方法就是对每个属性进行处理然后通过beanWapper的setPropertyValues进行赋值。 这里注意一下,bean有singleton和prototype两种 ,对于prototype,spring采用了原型模式,使用对象的deepcopy。 至此,spring完成了对实例的赋值,然后就是调用initializeBean; |
相关文章
- Spring中bean的scope详解
- Tomcat源码分析三:Tomcat启动加载过程(一)的源码解析
- 【spring源码学习】spring的IOC容器在初始化bean过程
- 浏览器输入一个url的过程,以及加载完html文件和js文件的标志
- Spring bean的创建过程
- Spring竟然可以创建“重复”名称的bean?—一次项目中存在多个bean名称重复问题的排查
- 自学spring过程中碰到的问题list,一个一个解决
- Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项
- Java_SSH之spring_002_01:Spring容器创建的三种方式、或者叫加载Spring容器的三种方式
- Spring学习(5)---Bean的定义及作用域的注解实现