一、Bean的初始化过程

二、Spring Bean的生命周期
1.通过XML、Java annotation(注解)以及Java Configuration(配置类)等方式加载Spring Bean
2.BeanDefinitionReader:解析Bean的定义。在Spring容器启动过程中,会将Bean解析成Spring内部的BeanDefinition结构;理解为:将spring.xml中的<bean>标签转换成BeanDefinition结构有点类似于XML解析
3.BeanDefinition:包含了很多属性和方法。例如:id、class(类名)、scope、ref(依赖的bean)等等。其实就是将bean(例如<bean>)的定义信息存储到这个对应BeanDefinition相应的属性中
例如:
<bean id="" class="" scope=""> -----> BeanDefinition(id/class/scope)
4.BeanFactoryPostProcessor:是Spring容器功能的扩展接口
三、 Bean的单例与多例理论部分
单例:
优点:减少内存的使用,也Spring中bean默认的创建方式
缺点:会存在变量污染的问题
多例:
优点:不存在变量污染
缺点:耗内存
单例与多例选择:
是否会对bean对象中的属性进行修改
如果会“:那么多例
如果不会:单例
单例的生命周期:
容器生对象生
多例的生命周期:
bean在使用的时候才进行初始化
销毁与容器无关,与Java的垃圾回收机制
本文深入探讨了Spring框架中Bean的初始化过程,从XML、注解和配置类加载Bean,解析BeanDefinition,以及BeanFactoryPostProcessor的角色。同时,分析了Bean的单例与多例模式,包括它们的优缺点和适用场景,并详细阐述了两种模式的生命周期差异。
1798

被折叠的 条评论
为什么被折叠?



