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

news2024/10/6 6:39:35

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.coloradmin.cn/o/1643452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive大数据任务调度和业务介绍

目录 一、Zookeeper 1.zookeeper介绍 2.数据模型 3.操作使用 4.运行机制 5.一致性 二、Dolphinscheduler 1.Dolphinscheduler介绍 架构 2.架构说明 该服务内主要包含: 该服务包含: 3.FinalShell主虚拟机启动服务 4.Web网页登录 5.使用 5-1 安全中心…

[入门] Unity Shader前置知识(5) —— 向量的运算

在Unity中,向量无处不在,我想很多人都使用过向量类的内置方法 normalized() 吧,我们都知道该方法是将其向量归一化从而作为一个方向与速度相乘,以达到角色朝任一方向移动时速度都相等的效果,但内部具体是如何将该向量进…

【计算机科学速成课】笔记二

笔记一 文章目录 7.CPU阶段一:取指令阶段阶段二:解码阶段阶段三:执行阶段 8.指令和程序9.高级CPU设计——流水线与缓存 7.CPU CPU也叫中央处理器,下面我们要用ALU(输入二进制,会执行计算)、两种…

STM32之HAL开发——ADC入门介绍

ADC简介 模数转换,即Analog-to-Digital Converter,常称ADC,是指将连续变量的模拟信号转换为离散的数字信号的器件,比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101,这样ADC就建立了模拟世界的传感器和…

C++异常处理实现(libstdc++)

摘要:为了更好的理解C中异常处理的实现,本文简单描述了Itanium ABI中异常处理的流程和llvm/libsdc简要实现。 关键字:C,exception,llvm,clang C他提供了异常处理机制来对程序中的错误进行处理,避免在一些异常情况下无法恢复现场而…

Android C++ 开发调试 LLDB 工具的使用

文章目录 调试环境准备基础命令Breakpoint CommandsWatchpoint CommandsExamining VariablesEvaluating ExpressionsExamining Thread StateExecutable and Shared Library Query Commands 参考: Android 中在进行 NDK 开发的时候,我们经常需要进行 C 代…

漏洞挖掘之某厂商OAuth2.0认证缺陷

0x00 前言 文章中的项目地址统一修改为: a.test.com 保护厂商也保护自己 0x01 OAuth2.0 经常出现的地方 1:网站登录处 2:社交帐号绑定处 0x02 某厂商绑定微博请求包 0x02.1 请求包1: Request: GET https://www.a.test.com/users/auth/weibo?…

88、动态规划-乘积最大子数组

思路: 首先使用递归来解,从0开始到N,每次都从index开始到N的求出最大值。然后再次递归index1到N的最大值,再求max。代码如下: // 方法一:使用递归方式找出最大乘积public static int maxProduct(int[] num…

局部性原理和磁盘预读

局部性原理 磁盘预读 \

Linux---软硬链接

软链接 我们先学习一下怎样创建软链接文件,指令格式为:ln -s 被链接的文件 生成的链接文件名 我们可以这样记忆:ln是link的简称,s是soft的简称。 我们在下面的图片中就是给test文件生成了一个软链接mytest: 我们来解…

【Linux—进程间通信】共享内存的原理、创建及使用

什么是共享内存 共享内存是一种计算机编程中的技术,它允许多个进程访问同一块内存区域,以此作为进程间通信(IPC, Inter-Process Communication)的一种方式。这种方式相对于管道、套接字等通信手段,具有更高的效率&…

【skill】onedrive的烦人问题

Onedrive的迷惑行为 安装Onedrive,如果勾选了同步,会默认把当前用户的数个文件夹(桌面、文档、图片、下载 等等)移动到安装时提示的那个文件夹 查看其中的一个文件的路径: 这样一整,原来的文件收到严重影…

孪生网络、匹配网络和原型网络:详解与区分

孪生网络、匹配网络和原型网络 孪生网络、匹配网络和原型网络:详解与区分孪生网络(Siamese Networks)核心概念工作原理 匹配网络(Matching Networks)核心概念工作原理 原型网络(Prototypical Networks&…

环形链表知识点

目录 判断链表中是否有环快慢指针步数问题 判断链表中是否有环 题目:给你一个链表的头节点 head ,判断链表中是否有环。 解决方法:使用快慢指针 如果两个快慢指针相遇,则有环。 如果没有相遇,则没有环。 但是这个原理…

Linux——守护进程化(独立于用户会话的进程)

目录 前言 一、进程组ID与会话ID 二、setsid() 创建新会话 三、daemon 守护进程 前言 在之前,我们学习过socket编程中的udp通信与tcp通信,但是当时我们服务器启动的时候,都是以前台进程的方式启动的,这样很不优雅&#xff0c…

【LinuxC语言】setitimer与getitimer函数

文章目录 前言一、setitimer() 函数二、getitimer() 函数三、示例代码总结 前言 在Linux系统下,编写程序时经常需要使用定时器来实现一些定时任务、超时处理等功能。setitimer() 和 getitimer() 函数是两个用于操作定时器的重要函数。它们可以帮助我们设置定时器的…

第19章 基于质量特性的测试技术

一、功能性测试 (一)测试方法 等价类边界值法因果图法判定表法场景法 (二)用例 1、正常用例 2、异常用例 (三)完备性 1、功能覆盖率 2、X1-A/B 功能覆盖率X:软件实际功能覆盖文档中所有…

【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解

一、计算机网络的发展背景 1、网络的定义 网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来,形成一个相互通信和共享资源的系统。 (1) 独立模式 独立模式 : 计算机之间相互独立。 (2)…

VMvare如何更改虚拟机内共享文件夹的挂载点

更改虚拟机内共享文件夹的路径 进入目录 /etc/init.d ,并找到vmware-tools文件 里面有配置项 vmhgfs_mnt"/mnt/hgfs" 将引号内的内容更改为你需要挂载的路径,重启即可 注意挂载的路径不能是 “/”,必须根目录下的某个文件夹,或者其子文件夹 …

在线OJ——链表经典例题详解

引言:本篇博客详细讲解了关于链表的三个经典例题,分别是:环形链表(简单),环形链表Ⅱ(中等),随机链表的复制(中等)。当你能毫无压力地听懂和成功地…