【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)

目录

首先让我们来回顾一下Spring中的Bean是什么

Bean的生命周期

然后让我们由浅及深的对Bean的创建过程进行了解

首先来看最核心的五步骤

然后让我们逐层递进,学习一下七步骤版本吧

现在我们就可以进一步了解十步骤的版本(完整的生命周期)


首先让我们来回顾一下Spring中的Bean是什么

        在Spring框架中,Bean是一个被Spring容器所管理的对象。Spring中的对象的创建、组装和管理是通过IOC思想和DI机制来完成的,而这些对象就被称为Bean。

        简单来说,Bean就是一个由Spring容器初始化、管理和维护的普通的Java对象。通过Spring容器,我们可以方便的创建和获取这些对象,并且可以配置它们的行为与属性。

在 Spring 中,我们可以配置 Bean 的定义和属性,以及它们之间的依赖关系。常见的配置方式包括 XML 配置文件、注解和 Java 配置类。

下面是一个使用 XML 配置 Bean 的示例:



    
    
    



    
    
    

        在上述示例中,UserServiceUserDao 都被定义为 Bean。userService 使用了 userDao 作为依赖,因此需要在配置中设置这个依赖关系。

        通过 Spring 容器的配置,Spring 会根据配置信息创建相应的 Bean,并将它们组装好。通过容器,我们可以获取到这些 Bean,并使用它们进行业务处理。

        除了 XML 配置外,Spring 还提供了注解和基于 Java 类的配置方式来定义 Bean。例如,使用注解时可以通过 @Component@Service@Repository 等注解将类声明为 Bean,而使用 Java 配置类时可以使用 @Bean 注解进行 Bean 的定义。

复习完Bean之后,就可以进一步探讨Bean是如何创建的,它的流程是怎样的。

Bean的生命周期

        首先可以来看一下整个Spring Bean完整的生命周期流程图,展示了从Spring 容器一开始的初始化Bean最终到销毁掉Bean的流程(大家可以简单看过一遍再详细看下面的讲解,在脑海里大概有一个概念,能够方便理解下面的讲述内容)

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第1张图片

然后让我们由浅及深的对Bean的创建过程进行了解

首先来看最核心的五步骤

  1. 实例化——依赖注入之前已经创建的java对象,但是Spring Bean对外不可用(相当于一个空壳  )
  2. 依赖注入
  3. 初始化
  4. 使用Bean
  5. 销毁Bean

根据具体的代码例子,就能看出哪部分负责的什么规则了(非常容易理解)

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第2张图片

 测试类【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第3张图片

xml文件(配置了初始化方法——初始化步骤就自动调用执行了,销毁方法——销毁的时候就自动调用了)【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第4张图片

 结果

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第5张图片

然后让我们逐层递进,学习一下七步骤版本吧

多的两个步骤多在哪里?

  1. 初始化之前(BeanPostProcessor 的before方法)
  2. 初始化之后(BeanPostProcessor 的after方法——诸如AOP就是在这里面做的)

然后加入到五步骤版本的相应位置

1、实例化——依赖注入之前已经创建的java对象,但是Spring Bean对外不可用(相当于一个空壳  )

2、依赖注入

        3、初始化前——BeanPostProcessor before方法

4、初始化

         5、初始化前——BeanPostProcessor after方法

6、使用Bean

7、销毁Bean

然后这里自定义了一个MyProcessor,实现了BeanPostProcessor,来展示在声明周期中的作用

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第6张图片

然后再在配置文件中进行配置,就可以启用啦

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第7张图片

 结果展示

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第8张图片

现在我们就可以进一步了解十步骤的版本(完整的生命周期)

绿色的为新增的具体步骤哦!

1、实例化——依赖注入之前已经创建的java对象,但是Spring Bean对外不可用(相当于一个空壳  )

2、依赖注入

                3、BeanNameAware BeanFactoryAware(类似的xxxaware方法)方法执行啦!(xxxAware可以让bean获取spring容器中的服务)

        4、初始化前——BeanPostProcessor before方法

                5、InitialingBean 接口的方法执行啦!

6、初始化

         7、初始化前——BeanPostProcessor after方法

8、使用Bean

        9、DisposableBean接口的方法执行啦!

10、销毁Bean

新实现了这三个接口

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第9张图片

然后将三个接口的方法重写,就能在Bean生命流程中自动调用了 

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第10张图片 结果

【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)_第11张图片

你可能感兴趣的:(spring,java,数据库,java-ee,intellij-idea,eclipse)