Spring Bean生命周期源码原理图解

 更新时间:2020年10月23日 08:29:05   作者:browser123  
这篇文章主要介绍了Spring Bean生命周期源码原理图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

概述

spring流行了很长时间了,是一个用java编写的轻量级框架,受到了很多公司及程序员的欢迎,Bean生命周期是一个对象从实例化开始到销毁的全过程,了解生命周期是很有必要的。

重要性

spring的生命周期是比较复杂的,只有了解其过程及原理才能更好的扩展程序。

源码剖析生命周期过程bean的实例化

属性填充及Aware接口检测设置依赖

如果容器自定义了BeanpostProcessor的实现类,则执行处理器相应的前置处理

bean实现了初始化接口InitlializingBean,则会执行相应的逻辑

同时也自定义了初始化方法init-method

如果容器自定义了BeanpostProcessor的实现类,则会执行相应处理器的后置处理

注册销毁的回调bean

bean实现了销毁接口DisposableBean,则会执行相应的逻辑

同时也自定义了销毁化方法destory-method

流程的请求总结


上述流程图总结了从容器启动到销毁的全过程

总结

一、从上面源码分析,spring的生命周期可以分为四大块:

1、bean的实例化

2、bean属性的设值

3、bean的初始化

4、bean的销毁

二、实现了Aware的接口,则会注入相应的依赖

三、接口BeanPostProcessor有两个初始化方法,这两个方法在增加bean的时候,很重要,比如,spring aop可以返回一个代理对象;参数的解密等等

四、其中生命周期用了简单工厂、工厂方法、单例模式、适配器模式、策略模式,利用这些设计模式,能够设计出更好的应用程序。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何用java程序(JSch)运行远程linux主机上的shell脚本

    如何用java程序(JSch)运行远程linux主机上的shell脚本

    这篇文章主要介绍了如何用java程序(JSch)运行远程linux主机上的shell脚本,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • Spring Mybatis 基本使用过程(推荐)

    Spring Mybatis 基本使用过程(推荐)

    Mybatis是一个半自动ORM(Object Relational Mapping)框架,它可以简化数据库编程,让开发者更专注于SQL本身,本文给大家介绍Spring Mybatis 基本使用过程,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Idea创建springboot不能选择java8的解决

    Idea创建springboot不能选择java8的解决

    在IDEA 2023版本创建Spring Boot项目时,发现没有Java 8选项,只有Java 17和Java 20,解决方法包括:通过修改服务器URL(推荐)或直接在创建后修改pom.xml文件中的Spring Boot和Java版本
    2025-01-01
  • mybatis单元测试过程(无需启动容器)

    mybatis单元测试过程(无需启动容器)

    在MyBatis中,单元测试无需启动容器即可进行,主要涉及Configuration类、Executor接口及其实现类,以及XMLMapperBuilder的作用,Configuration类是配置的承载者,负责初始化并解析配置文件,Executor接口及其实现类
    2024-09-09
  • javaweb实现文件上传功能

    javaweb实现文件上传功能

    这篇文章主要为大家详细介绍了javaweb实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 基于dubbo中Listener的实现方法

    基于dubbo中Listener的实现方法

    下面小编就为大家带来一篇基于dubbo中Listener的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 详解使用IntelliJ IDEA新建Java Web后端resfulAPI模板

    详解使用IntelliJ IDEA新建Java Web后端resfulAPI模板

    这篇文章主要介绍了详解使用IntelliJ IDEA新建Java Web后端resfulAPI模板,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • JAVA对象JSON数据互相转换的四种常见情况

    JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下
    2014-04-04
  • 使用Java实现创建Excel表单控件

    使用Java实现创建Excel表单控件

    在数据填报时,创建Excel表单控件是一项常见的任务,它可以极大地简化数据收集和处理的过程,本文主要介绍了如何使用Java实现创建Excel表单控件,感兴趣的可以了解下
    2024-03-03
  • maven解决包冲突方法详解

    maven解决包冲突方法详解

    这篇文章主要介绍了maven解决包冲突方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论