Spring中的Aware接口

Spring中的Aware接口

Aware接口介绍

Aware是Spring中的接口,它的作用是可以让Bean获取到运行环境的相关信息。比如获取到上下文、Bean在容器中的名称等。

Spring中提供了很多Aware接口的子类,具体如下:
在这里插入图片描述
常用接口的作用如下:

  • BeanNameAware: 实现这个接口的Bean可以在初始化之前获取到Spring容器为其分配的名称
  • ApplicationContextAware: 提供了一个方法来获取到ApplicationContext,这样Bean就可以访问到容器提供的服务,如事件发布、消息源等。
  • BeanFactoryAware: 允许Bean访问到创建它的BeanFactory,这在某些情况下可能比ApplicationContext更底层
  • EnvironmentAware: 提供了对应用环境变量的访问,包括属性源和配置信息
  • ResourceLoaderAware: 使Bean能够访问到ResourceLoader,从而能够加载资源,如文件、URL等
  • ApplicationEventPublisherAware: 允许Bean获取到ApplicationEventPublisher,用于发布应用事件
  • MessageSourceAware: 提供对MessageSource的访问,用于国际化的消息获取

Aware接口使用

在一个Bean中实现指定的Aware就可以获取到相应的对象,这里实现的是ApplicationContextAware 接口,可以拿到ApplicationContext对象。

public class A implements ApplicationContextAware {private ApplicationContext context;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.context = applicationContext;}}

原理

在Bean初始化的时候会调用invokeAwareMethods方法
在这里插入图片描述
invokeAwareMethods方法中会根据Bean的类型去给Bean设置相应的属性,所以最终我们在Bean中就可以拿到运行环境相关的信息。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845300.shtml

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

相关文章

【网络原理】HTTP|认识请求“报头“|Host|Content-Length|Content-Type|UA|Referer|Cookie

目录 认识请求"报头"(header) Host Content-Length Content-Type User-Agent(简称UA) Referer 💡Cookie(最重要的一个header,开发&面试高频问题) 1.Cookie是啥? 2.Cookie怎么存的? …

视频汇聚EasyCVR视频监控云平台对接GA/T 1400视图库对象和对象集合XMLSchema描述

GA/T 1400协议主要应用于公安系统的视频图像信息应用系统,如警务综合平台、治安防控系统、交通管理系统等。在城市的治安监控、交通管理、案件侦查等方面,GA/T 1400协议都发挥着重要作用。 以视频汇聚EasyCVR视频监控资源管理平台为例,该平台…

游戏逆向工具分析及解决方案

游戏逆向,是指通过各类工具对游戏进行反编译及源码分析,尝试分析游戏的实现逻辑的过程。这个过程需要使用解密、反编译、解压缩等技术,目的是还原或分析出游戏的代码逻辑及资源。 游戏逆向工具可以按照不同功能进行划分,如&#…

java微服在使用nacos注册中心时,ribbon负载均衡时给部分feign client使用静态serverList

我看很多贴子都是针对eureka环境下做静态ServerList配置,目前国内大部分都用Nacos,所以便研究了一下。 micore-service-x:ribbon:listOfServers: ip1:port,ip2:port2NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList m…

Linux上传文件

在finalshell中连接的Linux系统中,输入命令rz然后选择windows中的文件即可。

数据结构算法 数组的实现与练习(C语言实现,Java实现)

文章目录 数据结构数组(顺序表)特点使用Java实现更高级的数组C语言实现总结优点缺点 例题[26. 删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/)[1. 两数之和](https://leetcode.cn/problems/two-sum/)[27. 移除元素](https://lee…

破解生产难题,这些中小汽配企业这样做

伴随着汽车新四化即智能化、网联化、电动化、共享化的趋势,国内汽车零部件行业在市场规模和发展速度上呈现高速增长。然而,在劳动力成本上升,原材料价格上涨,企业生产成本逐年增加的情境下,市场竞争越来越激烈,如何降本增效,还能构…

三十二篇:转化决策为行动:探索决策支持系统的深层价值

转化决策为行动:探索决策支持系统的深层价值 1. DSS的精髓:定义与核心功能 1.1 定义与作用 在现代商业的快速演变中,决策支持系统(Decision Support Systems, DSS)已成为企业获得竞争优势的重要工具。DSS是一种利用先…

【R语言基础】如何更新R版本

文章目录 概要流程细节具体步骤 概要 提示:由于软件包的更新,所以需要更新R至新版本 流程细节 查看当前R版本 R.version下载更新包:installr install.packages("installr")library(installr)跟着向导一步步执行安装 具体步骤 …

HTML5的标签(文本链接、图片路径详解)

目录 前言 一、文本链接 超链接表述 二、图片路径详解 绝对路径 相对路径 网络路径 前言 一、文本链接 超链接表述 HTML 使用标签<a>来设置超文本链接 超链接可以是一个字&#xff0c;一个词&#xff0c;或者一组词&#xff0c;也可以是一幅图像&#xff0c;…

本地电脑通过远程服务器进行ssh远程转发

☆ 问题描述 想要实现这样一个事情&#xff1a; 我想要提供一个ai服务&#xff0c;但是租计算服务器太贵了&#xff0c;我自己有配的台式机。那么用我的台式机作为服务器&#xff0c;租一个服务器做端口转发可行吗&#xff1f; ★ 解决方案 1. 修改服务器上的sshd_config文件…

如何格式化只读U盘?

U盘只读无法格式化&#xff0c;该怎么处理&#xff1f;别担心&#xff01;本文将向你提供一些实用方法&#xff0c;助你解决U盘写保护的难题。这些方法能有效帮助你解除U盘的只读状态&#xff0c;从而可以顺利进行格式化和其他操作。 不能格式化只读U盘 “我购买了一个U盘&…

vmware esxi虚拟化数据迁移

1、启用esxi的ssh 登录esxi的web界面&#xff0c;选择主机-》操作——》服务——》启动ssh 2.xshell登录esxi 3、找到虚拟机所在目录 blog.csdnimg.cn/direct/d57372536a4145f2bcc1189d02cc7da8.png)#### 3在传输数据前需关闭防火墙服务 查看防火墙状态&#xff1a;esxcli …

系统架构设计师【第8章】: 系统质量属性与架构评估 (核心总结)

文章目录 8.1 软件系统质量属性8.1.1 质量属性概念8.1.2 面向架构评估的质量属性8.1.3 质量属性场景描述 8.2 系统架构评估8.2.1 系统架构评估中的重要概念8.2.2 系统架构评估方法 8.3 ATAM方法架构评估实践8.3.1 阶段1—演示&#xff08;Presentation&#xff09;8.3…

卷积网络迁移学习:实现思想与TensorFlow实践

摘要&#xff1a;迁移学习是一种利用已有知识来改善新任务学习性能的方法。 在深度学习中&#xff0c;迁移学习通过迁移卷积网络&#xff08;CNN&#xff09;的预训练权重&#xff0c;实现了在新领域或任务上的高效学习。 下面我将详细介绍迁移学习的概念、实现思想&#xff0c…

堆排序详细理解

目录 一、前备知识 二、建堆 2.2.1 向上调整算法建堆 2.2.2 向下调整算法建堆 三、排序 3.1 常见问题 3.2 思路 3.3 源码 一、前备知识 详细图解请点击&#xff1a;二叉树的顺序实现-堆-CSDN博客 本文只附上向上/向下调整算法的源码 //交换 void Swap(int* p, int* …

发电机组故障的原因、解决方案及解决措施

发电机组故障的原因、解决方案及解决措施可以总结如下&#xff1a; 一、故障原因 供电中断 原因&#xff1a;电网故障、线路短路或电力负荷过重等。 燃油问题 原因&#xff1a;燃油供应系统问题&#xff0c;如燃油管路堵塞、燃油质量不佳等。 轴承过热 原因&#xff1a;轴承过…

TensorFlow Playground神经网络演示工具使用方法详解

在现代机器学习领域,神经网络无疑是一个重要的研究方向。然而,对于许多初学者来说,神经网络的概念和实际操作可能显得相当复杂。幸运的是,TensorFlow Playground 提供了一个交互式的在线工具,使得我们可以直观地理解和实验神经网络的基本原理。在这篇博客中,我们将详细介…

长虹智能电视55D3P(机芯:ZLH74GiR2G)海思平台固件解析打包

一、使用Hitool打包固件 接上一篇&#xff0c;尝试使用HITOOL打包固件 长虹55D3P海思平台固件破解-CSDN博客 参考ZNDS HItool备份固件&#xff1a;【玩机必看】海思机顶盒备份线刷包 制作分区表xml文件_ZNDS刷机/救砖_ZNDS HITOOL下载&#xff1a;https://cloud.189.cn/web/…

Visual Studio 2022创建dll并调用

需求&#xff1a; 创建A项目&#xff0c;有函数和类&#xff0c;将A项目生成DLL动态链接库 创建B项目&#xff0c;使用A项目生成的dll和lib相关文件 正常项目开发.h用于函数声明&#xff0c;.cpp用于函数实现&#xff0c;但是项目开发往往不喜欢将.cpp函数实现的代码发给别人&…