Spring扩展点(一)Bean生命周期扩展点

news/2024/9/23 22:41:09/

Bean生命周期扩展点

  • 影响多个Bean的实例化
    • InstantiationAwareBeanPostProcessor
    • BeanPostProcessor
  • 影响单个Bean的实例化
    • 纯粹的生命周期回调函数
      • InitializingBean(BeanPostProcessor 的before和after之间调用)
      • DisposableBean
    • Aware接口
      • 在生命周期实例化过程中调用(在BeanPostProcessor之前)
      • 在 ApplicationContextAwareProcessor中调用的(属于BeanPostProcessor#before中的回调 )

基本生命周期:
实例化 → 属性设置 → 初始化 → 销毁
在这里插入图片描述

影响多个Bean的实例化

InstantiationAwareBeanPostProcessor

该接口中有以下方法。
在这里插入图片描述
分别在bean实例化前后调用。

BeanPostProcessor

该接口有俩方法。在bean初始化前后调用
在这里插入图片描述

影响单个Bean的实例化

纯粹的生命周期回调函数

InitializingBean(BeanPostProcessor 的before和after之间调用)

DisposableBean

销毁Bean时调用。

Aware接口

在生命周期实例化过程中调用(在BeanPostProcessor之前)

这类接口,可以在当前Bean实例化过程中,拿到Spring 上下文中相关资源;在一个Bean的实例化过程中,Aware调用时机发生在BeanPostProcessor之前

  • BeanNameAware:获取当前Bean名称
  • BeanClassLoaderAware:获取当前Bean的ClassLoader
  • BeanFactoryAware:获取当前Bean的BeanFactory
    在这里插入图片描述

在 ApplicationContextAwareProcessor中调用的(属于BeanPostProcessor#before中的回调 )

  • EnvironmentAware
  • EmbeddedValueResolverAware
  • ResourceLoaderAware
  • ApplicationEventPublisherAware
  • MessageSourceAware
  • ApplicationStartupAware
  • ApplicationContextAware

http://www.ppmy.cn/news/1453121.html

相关文章

分享一篇关于AGI的短文:苦涩的教训

学习强化学习之父、加拿大计算机科学家理查德萨顿( Richard S. Sutton )2019年的经典文章《The Bitter Lesson(苦涩的教训)》。 文章指出,过去70年来AI研究走过的最大弯路,就是过于重视人类既有经验和知识&…

组合总和2(力扣40)

解题思路:因为这里不能有重复的组合,所以采取用下表used来判断其是否在前面出现过,如果出现过就直接跳过,同时判断是树层重复还是树枝重复,如果是树枝重复就不用跳过 具体代码如下: class Solution { pu…

《Redis使用手册之HyperLog与地理坐标应用》

《Redis使用手册之HyperLog与地理坐标》 目录 **《Redis使用手册之HyperLog与地理坐标》****PFADD:对集合元素进行计数****PFCOUNT:返回集合的近似基数****PFMERGE:计算多个HyperLogLog的并集****GEOADD:存储坐标****GEOPOS&#…

实验八 Java 语言输入和输出程序设计练习(课内实验)

一、实验目的 本次实验的主要目的是练习使用Java语言的输入与输出流类,实现文件的处 理。 二、实验要求 1.认真阅读实验内容,完成实验内容所设的题目 2.能够应用多种编辑环境编写JAVA语言源程序 3.认真体会输入与输出的概念和方法 三、实验内容…

python脚本制作可执行文件(pyinstaller)

在Linux系统下,如果你想将一个Python脚本编译成一个可执行文件,并且希望这个可执行文件能被C程序调用,你可以通过几个步骤来实现这一目标。 1. 使用PyInstaller或Cython将Python脚本编译为可执行文件 使用PyInstaller 安装PyInstaller: p…

【Python】机器学习之Sklearn基础教程大纲

机器学习之Sklearn基础教程大纲 1. 引言 机器学习简介Scikit-learn(Sklearn)库介绍安装和配置Sklearn 2. 数据预处理 2.1 数据加载与查看 - 加载CSV、Excel等格式的数据- 查看数据的基本信息(如形状、数据类型等)2.2 数据清洗…

gateway linux远程后端 连接报错:“exit code: 1“

gateway linux远程后端 连接时报错:“exit code: 1” 问题细节 之前使用gateway连接过,但某次连接时报错日志如下,面板会弹出信息,也可在C:\Users\YJM\AppData\Local\JetBrains\IntelliJIdea2023.3\log\gateway\20240504-171145…

Jenkins docker部署springboot项目

1、创建jenkins容器 1,首先,我们需要创建一个 Jenkins 数据卷,用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷: docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷: docker run -dit…