您的位置:首页 > 游戏 > 手游 > 免费下载logo素材_平面设计专业哪个学校最好_郑州整站关键词搜索排名技术_每日新闻摘抄10条

免费下载logo素材_平面设计专业哪个学校最好_郑州整站关键词搜索排名技术_每日新闻摘抄10条

2025/2/27 10:48:43 来源:https://blog.csdn.net/kang2500/article/details/145886753  浏览:    关键词:免费下载logo素材_平面设计专业哪个学校最好_郑州整站关键词搜索排名技术_每日新闻摘抄10条
免费下载logo素材_平面设计专业哪个学校最好_郑州整站关键词搜索排名技术_每日新闻摘抄10条

Spring Bean 的生命周期是指从其被定义到最终被销毁的整个过程,具体如下:

1. 元信息配置阶段

这是 Bean 信息的定义阶段。Spring 容器启动时,不管是通过 XML 配置文件中的<bean>标签,还是使用注解(如@Bean@Component及其衍生注解@Service@Repository@Controller),亦或是扫描得到的类,最终都会被解析成 Spring 内部的BeanDefinition结构。BeanDefinition包含了 Bean 定义的各种信息,如对应的 Class、作用域(scope,如 singleton、prototype )、是否延迟初始化(lazy)、依赖关系(depend on)、是否为自动注入候选者(autowire candidate)、是否为主要候选者(primary)等。

2. 元信息解析阶段

将各种方式定义的 Bean 配置信息解析为BeanDefinition对象,以便后续 Spring 容器根据这些信息对 Bean 进行操作。

3. 注册到容器阶段

把解析好的BeanDefinition注册到 Spring 容器中,这样容器才能管理这些 Bean。

4. BeanDefinition合并阶段

对于有继承关系的BeanDefinition,进行合并操作,确保最终使用的是完整且正确的 Bean 定义信息。

5. 类加载阶段

Spring 容器根据BeanDefinition中的类信息,加载对应的 Bean 类到 JVM 中。

6. 实例化阶段

  • 实例化前:在真正创建 Bean 实例之前,如果有相关的前置处理逻辑,会在这个阶段执行。
  • 实例化:Spring 容器利用 Java 反射机制创建 Bean 的实例。对于单例 Bean,容器会保证在整个应用中只有一个实例;对于原型 Bean,每次请求都会创建一个新的实例。

7. 合并后的BeanDefinition处理阶段

对实例化后的相关BeanDefinition信息进行进一步处理。

8. 属性赋值阶段

  • 实例化后:实例化完成后,在属性赋值前的一些处理操作。
  • 属性赋值前:为属性赋值做准备。
  • 属性赋值:Spring 容器通过调用 Setter 方法等方式,将 Bean 的属性值注入到对应的属性中,属性值可以通过 XML 配置或注解来指定。

9. 初始化阶段

  • Aware 接口回调:如果 Bean 实现了Aware系列接口(如BeanNameAwareBeanFactoryAwareApplicationContextAware等),Spring 容器会回调相应的方法,让 Bean 获取到容器相关的信息。
  • 初始化前:在自定义的初始化方法调用之前,可能会有一些前置处理逻辑。
  • 初始化:调用在配置文件或注解中定义的 Bean 的初始化方法(如通过@PostConstruct注解标注的方法,或实现InitializingBean接口的afterPropertiesSet方法 ),进行一些初始化操作,如资源的加载、连接的建立等。
  • 初始化后:初始化方法调用之后的一些后置处理操作,例如 Spring AOP 在此阶段会为 Bean 创建代理对象(如果需要的话)。

10. 所有单例 Bean 初始化完成后阶段

当所有的单例 Bean 都完成初始化后,Spring 容器会发布相应的事件,用于通知应用中监听该事件的组件。

11. 使用阶段

Bean 初始化完成后,就可以被其他组件获取和使用,执行业务逻辑。

12. 销毁前阶段

当 Bean 不再需要使用,并且 Spring 容器准备关闭时,对于单例 Bean,会进入销毁前阶段,做一些销毁前的准备工作。

13. 销毁阶段

如果 Bean 实现了DisposableBean接口,或者配置了自定义的销毁方法(如通过@PreDestroy注解标注的方法 ),Spring 容器会调用这些方法,释放 Bean 占用的资源,如关闭数据库连接、释放文件句柄等,完成 Bean 的销毁。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com