首页 > 其他分享 >Spring的Bean生命周期

Spring的Bean生命周期

时间:2023-10-05 22:35:07浏览次数:32  
标签:初始化 生命周期 Spring springframework BeanPostProcessors Bean beans org

  1.实例Bean:容器寻找Bean的定义信息并将其实例化,通过doCreateBean()方法实现。

    protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] args)
 2.Bean属性注入:使用依赖注入,Spring按照Bean定义信息配置Bean所有属性, 通过populateBean方法,在AbstractAutowireBeanCapableBeanFactory抽象类里实现。
3.设置Bean的名称(id):如果Bean类已经实现org.springframework.beans.BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的ID。
 4.设置Bean的工厂:如果Bean类已经实现org.springframework.beans.factory.BeanFactoryAware接口,给Bean设置BeanFactory。
 5.准备初始化阶段: BeanPostProcessors的ProcessBeforeInitialization()如果org.springframework.beans.factory.config.
BeanPostProcessors和Bean关联,postProcessBeforeInitialization()方法将被将被调用,为初始化Bean出初始化作准备工作。
 6.初始化Bean:如果Bean类已实现org.springframework.beans.factory.InitializingBean接口,则执行它afterProPertiesSet()方法。
7.初始化Bean的方法:可以在Bean定义文件中使用"init-method"属性设定方法名称例如:如果有以上设置的话,则执行到这个阶段,就会执行initBean()方法
 8.初始化之后的工作: BeanPostProcessors的postProcessaAfterInitialization(), 如果有任何的BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessors实例的postProcessaAfterInitialization()方法

标签:初始化,生命周期,Spring,springframework,BeanPostProcessors,Bean,beans,org
From: https://www.cnblogs.com/wyl010926/p/17744039.html

相关文章

  • Spring 是如何解决循环依赖的
    首先我们要了解spring实例化bean的三步骤:1)doCreateBeanInstance,通过无参构造方法创建一个bean的实例。2)populateBean,填充bean的属性。3)initialBean,执行bean的初始化。Spring的循环依赖主要发生在第一步和第二步。Spring的依赖注入有三种情况:1.构造器注入,对于构造器注......
  • Spring 的几种配置方式
    1、xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http......
  • Spring Boot
    1.什么是SpringBoot?   SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用   Spring的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。2.为什么要用SpringBoot   快速开发,快速整合,配置简化、内嵌服务容器3.......
  • SpringCloud2022
    1.父模块<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><properties><java.version>1......
  • sa-token在springcloud中充当什么角色
    sa-token是干什么的?SA-Token是一种用于身份验证和授权的令牌。SA-Token全称为ServiceAccountToken,它是由GoogleCloud平台提供的一种身份验证机制。SA-Token用于向服务账号提供身份验证和授权,使其能够访问特定的GoogleCloud资源和API。SA-Token通过使用JSONWebToken(JWT)来生......
  • springboot开发过程的一些细节
    注解:格式要求@DateTimeFormat(pattern=“yyyy-MM-DD”)@Pathvariable用来绑定动态请求参数@RequestBody用来接收前端传来的动态请求参数,一般post请求,对象接收。 在Controller层中返回值参数要与需求文档的参数相同。依赖:pagehelper依赖,实现分页更能跟便捷......
  • SpringBoot vue云办公系统
    SpringBootvue云办公系统系统功能云办公系统登录员工资料管理:搜索员工添加编辑删除员工导入导出excel薪资管理:工资账套管理添加编辑删除工资账套员工账套设置系统管理:基础信息设置部门管理职位管理职称管理权限组管理操作员管理开发环境和技术开发语言:Ja......
  • 全脸 苦思设计了半年的注册中心,与spring cloud 的做法 基本一致
    早知道不去自己思考设计了,害死了不少脑细胞,物理层的东西,所有设计者的思路都基本一致;  ......
  • SpringSecurity-前后端分离教程
    1、简介SpringSecurity是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。......
  • Bean 的作用域有哪些?如何在 Spring 中创建 Bean?
    Bean的作用域有哪些?在Spring中,Bean的作用域定义了Bean实例的生命周期和可见性。Spring定义了以下五种作用域:1、singleton:单例模式,一个Bean容器中只存在一个实例。2、prototype:每次请求都会创建一个新的实例。3、request:每个HTTP请求都会创建一个新的实例。4、ses......