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

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.mzph.cn/diannao/6553.shtml

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

相关文章

二叉树的实现(详解,数据结构)

目录 一,二叉树需要实现的功能 二,下面是各功能详解 0.思想: 1.创建二叉树结点: 2.通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树 3.二叉树销毁: 4.前序遍历: 5.中序遍历:…

Linux常见指令(三)

Linux下的基本指令大全 下面将Linux指令分成9种不同的主要类别: 文件管理指令:这些指令用于文件和目录的创建、编辑、复制、移动和删除。例如:ls(列出目录内容),cp(复制文件或目录)…

Apache kylin面试题50道题及参考答案(2万字长文)

目录 什么是Apache Kylin,它主要用于解决什么问题? 解释OLAP和Kylin是如何关联的。

netbeans中add server instance界面为什么让创建一个user

在NetBeans中,“Add Server Instance”(添加服务器实例)界面要求创建一个用户,是为了配置服务器实例的运行环境和访问权限。 创建一个用户是为了确保服务器实例能够以安全的方式运行,并限制对服务器的访问。通过创建一…

甲辰年立夏晨语

甲辰年立夏晨语 日影长短时,晴空絮风飞。 ​天象冷暖催,只争杏黄味。 ​悯农仓实喜,哪怕世代累。 ​远听近观处,心满无忧美。

RabbitMQ之顺序消费

什么是顺序消费 例如:业务上产生者发送三条消息, 分别是对同一条数据的增加、修改、删除操作, 如果没有保证顺序消费,执行顺序可能变成删除、修改、增加,这就乱了。 如何保证顺序性 一般我们讨论如何保证消息的顺序性&…

PostgreSQL自带的命令行工具01- pg_archivecleanup

PostgreSQL自带的命令行工具01- pg_archivecleanup 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:5777pg_archiv…

3GPP官网下载协议步骤

1.打开官网 https://www.3gpp.org/ 2.点击 3.在界面选择要找的series,跳转到查找界面 以V2X通信协议为例,论文中通常会看到许多应用: [7] “Study on evaluation methodology of new Vehicle-to-Everything (V2X) use cases for LTE and NR…

CMakeLists.txt 简单的语法介绍

一. 简介 前面通过几个简单地示例向大家演示了 cmake 的使用方法,由此可知,cmake 的使用方法其实还是非常简单的,重点在于编写 CMakeLists.txt,CMakeLists.txt 的语法规则也简单,并没有 Makefile 的语法规则那么复杂难…

3.2Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3框架-企业级应用- Vuex

Vuex简介 Vuex概述 Vuex是一个专门为Vue.js应用程序开发的状态管理模式, 它采用集中式存储管理所有组件的公共状态, 并以相应的规 则保证状态以一种可预测的方式发生变化. 试想这样的场景, 比如一个Vue的根实例下面有一个根组件名为App.vue, 它下面有两个子组件A.vue和B.vu…

022、Python+fastapi,第一个Python项目走向第22步:ubuntu 24.04 docker 安装mysql8集群、redis集群(三)

这次来安装mysql8了,以前安装不是docker安装,这个我也是第一次,人人都有第一次嚒 前言 前面的redis安装还是花了点时间的,主要是网上教程,各有各的好,大家千万别取其长处,个人觉得这个环境影响…

ASP.NET网上车辆档案管理系统

摘 要 本文采用基于Web的Asp.net技术,并与sql server 2000数据库相结合,研发了一套车辆档案管理系统。该系统扩展性好,易于维护。简化了车辆档案设计流程,去除了冗余信息。汽车销售企业可以通过本系统完成整个销售及售后所有档案…

grpc拦截器+metadata进行接口统一校验

grpc拦截器metadata进行接口统一校验 hello.protoproto生成go文件命令client.go方法一:自定义拦截器,实现统一参数校验方法二:使用grpc内置拦截器,需要自定义结构体,实现credentials.PerRPCCredentials接口中的方法 se…

rust 实现GUI页面方法

rust 实现GUI页面方法 position-based 特点 精确控制:开发者可以精确控制每个元素的位置和大小,这在某些需要精细布局调整的应用场景中非常有用。直观:对于简单的界面,使用基于位置的布局方式很直观,容易理解。灵活…

python爬虫实战

import requests import json yesinput(输入页数:) yesint(yes)headers {"accept": "application/json, text/plain, */*","accept-language": "zh-CN,zh;q0.9","content-type": "application/json",…

一对一WebRTC视频通话系列(三)——leave和peer-leave信令实现

本篇博客主要分为两部分,第一部分为leave信令的实现,即当有客户端离开房间后,服务端和其他在房间内的客户需知晓。第二部分为媒体协商和网络协商相关API。 本系列博客主要记录一对一WebRTC视频通话实现过程中的一些重点,代码全部进…

渗透之sql盲注(时间/boolean盲注)

sql盲注:sql盲注意思是我们并不能在web页面中看到具体的信息,我们只能通过输入的语句的真假来判断。从而拿到我们想要的信息。 我们通常使用ascii值来进行盲注。 目录 手动注入: 时间盲注: 布尔盲注: python脚本注…

【Java】基本程序设计结构(一)

前言:现在,假定已经成功安装了JDK,并且能够运行上篇示例程序。本篇将开始介绍Java程序中的基本设计结构,其中包括:一个简单的Java应用,注释,数据类型,变量与常量,运算符&…

【深度学习基础(3)】初识神经网络之深度学习hello world

文章目录 一. 训练Keras中的MNIST数据集二. 工作流程1. 构建神经网络2. 准备图像数据3. 训练模型4. 利用模型进行预测5. (新数据上)评估模型精度 本节将首先给出一个神经网络示例,引出如下概念。了解完本节后,可以对神经网络在代码上的实现有一个整体的了…

【架构系列】RabbitMQ应用场景及在实际项目中如何搭建可靠的RabbitMQ架构体系

作者:后端小肥肠 创作不易,未经允许禁止转载。 1. 前言 RabbitMQ,作为一款高性能、可靠的消息队列软件,已经成为许多企业和开发团队的首选之一。它的灵活性和可扩展性使得它适用于各种应用场景,从简单的任务队列到复杂的分布式系统…