返回顶部
首页 > 资讯 > 后端开发 > Python >Java之SpringBean生命周期问题理解
  • 454
分享到

Java之SpringBean生命周期问题理解

2024-04-02 19:04:59 454人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

spring Bean的生命周期? 首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy; Spring上下文中的Bean生命周期也类

spring Bean的生命周期?

首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy;

Spring上下文中的Bean生命周期也类似,如下:

(1)实例化Bean:

对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有的bean。

(2)设置对象属性(依赖注入):

实例化后的对象被封装在BeanWrapper对象中,紧接着,Spring根据BeanDefinition中的信息 以及 通过BeanWrapper提供的设置属性的接口完成依赖注入。

(3)处理Aware接口:

接着,Spring会检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给Bean:

①如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的就是Spring配置文件中Bean的id值;

②如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory()方法,传递的是Spring工厂自身。

③如果这个Bean已经实现了ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法,传入Spring上下文;

(4)BeanPostProcessor:

如果想对Bean进行一些自定义的处理,那么可以让Bean实现了BeanPostProcessor接口,那将会调用postProcessBeforeInitialization(Object obj, String s)方法。由于这个方法是在Bean初始化结束时调用的,所以可以被应用于内存或缓存技术;

(5)InitializingBean 与 init-method:

如果Bean在Spring配置文件中配置了 init-method 属性,则会自动调用其配置的初始化方法。

(6)如果这个Bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj, String s)方法;

以上几个步骤完成后,Bean就已经被正确创建了,之后就可以使用这个Bean了。

(7)DisposableBean:

当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法;

(8)destroy-method:

最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

到此这篇关于Java之SpringBean生命周期问题理解的文章就介绍到这了,更多相关Java之SpringBean生命周期内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java之SpringBean生命周期问题理解

本文链接: https://lsjlt.com/news/131543.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java之SpringBean生命周期问题理解
    Spring Bean的生命周期? 首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy; Spring上下文中的Bean生命周期也类...
    99+
    2024-04-02
  • Java之SpringBean生命周期问题的示例分析
    小编给大家分享一下Java之SpringBean生命周期问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Spring Bean的生命周期?首先说一下S...
    99+
    2023-06-20
  • Java之SpringBean作用域和生命周期
    目录Bean 作用域和生命周期Bean 作用域Bean 作用域分类singletonprototyperequestsessionBean 作用域的设置Spring 执行流程Bean...
    99+
    2023-05-14
    Java SpringBean作用域和生命周期 SpringBean作用域 SpringBean生命周期
  • SpringBean生命周期之Bean的注册详解
    目录前言BeanFactory的继承体系Bean的注册alias别名的注册总结前言 上篇文章介绍了Bean元信息的配置与解析过程,限于篇幅Bean注册过程就没展开。 这里主要围绕Be...
    99+
    2024-04-02
  • SpringBean生命周期之Bean的实例化详解
    目录前言实例化前阶段实例化阶段实例化后阶段总结前言 上一节说到了BeanDefinition的合并过程,这节该说Bean的实例化过程了。根据AbstractAutowireCapab...
    99+
    2024-04-02
  • SpringBean生命周期之BeanDefinition的合并过程详解
    目录前言BeanDefinition的合并源码分析总结写在前面 注:本文章使用的 SpringBoot 版本为 2.2.4.RELEASE,其 Spring 版本为 5.2.3.RE...
    99+
    2024-04-02
  • SpringBean生命周期之属性赋值阶段详解
    目录前言属性自动装配属性赋值前回调属性的真正赋值总结前言 上节在谈论Bean的实例化过程时,在说明实例化后阶段时只是粗略地看了一下populateBean,并未展开分析。本节接着po...
    99+
    2024-04-02
  • Springbean的生命周期是什么
    Spring Bean的生命周期可以分为以下几个阶段: 实例化(Instantiation):在容器启动时,Spring根据配置...
    99+
    2023-10-24
    Springbean
  • SpringBean作用域与生命周期深入讲解
    目录1.作用域定义Bean 的作用域Bean 的 6 种作用域单例作用域(singleton)和全局作用域(application)区别2.设置作用域3.Bean 原理分析3.1 B...
    99+
    2024-04-02
  • SpringBean生命周期之Bean元信息的配置与解析阶段详解
    目录BeanDefinitionReader体系BeanDefinitionReader接口定义元信息配置与解析方式XmlBeanDefinitionReader元信息解析 源码分析...
    99+
    2024-04-02
  • 如何理解Java线程生命周期
    本篇内容主要讲解“如何理解Java线程生命周期”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Java线程生命周期”吧!如果要说 Java 线程的生命周期的话,那我觉得就要先说说操作系统的...
    99+
    2023-06-16
  • 怎么理解java线程生命周期
    本篇内容主要讲解“怎么理解java线程生命周期”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解java线程生命周期”吧!线程生命周期的几种状态刚接触线程生命周期时,我总是记不住,也理解不了...
    99+
    2023-06-16
  • Vue之生命周期函数详解
    目录生命周期函数常用的生命周期的钩子 关于Vue销毁实例: 总结 生命周期函数 生命周期函数又叫:生命周期回调函数,生命周期函数、 生命周期钩子 是什么:Vue在关键时刻帮我们调用...
    99+
    2024-04-02
  • spring之Bean的生命周期详解
    Bean的生命周期:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁Bean的定义Bean 是 spring 装配的组件模型,一切实体类都可以配置成一个 Bean ,进而就可以在任何其他的 Bean 中使用,一个 Be...
    99+
    2023-05-31
    spring bean 生命周期
  • 一文搞懂SpringBean中的作用域和生命周期
    目录一、Spring Bean 作用域singleton(单例)prototype(原型)小结二、Spring Bean生命周期如何关闭容器生命周期回调通过接口设置生命周期通过xml...
    99+
    2024-04-02
  • 深入理解php底层之php生命周期
    目录1、PHP的运行模式2、一切的开始: SAPI接口启动apache请求处理初始化执行php代码脚本结束sapi关闭3、PHP的开始和结束阶段4、单进程SAPI生命周期5、多进程S...
    99+
    2024-04-02
  • Vue生命周期怎么理解
    这篇“Vue生命周期怎么理解”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue生命周期怎么理解”文章吧。1、定义生命周期函...
    99+
    2023-07-06
  • 面试官常问React的生命周期问题
    React的生命周期 两张图带你理解 React的生命周期 React的生命周期(旧) class Life extends React.Component{ ...
    99+
    2024-04-02
  • Java开发学习之Bean的生命周期详解
    目录一、什么是生命周期二、环境准备三、生命周期设置步骤1:添加初始化和销毁方法步骤2:配置生命周期步骤3:运行程序四、close关闭容器五、注册钩子关闭容器六、bean生命周期总结一...
    99+
    2024-04-02
  • Java中Servlet的生命周期详解
    目录Web基础和HTTP协议什么是ServletServlet的生命周期Web基础和HTTP协议 ┌─────────┐ ┌──────...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作