当前位置: 首页 > news >正文

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.lryc.cn/news/353724.html

相关文章:

  • FFmpeg滤镜完整列表
  • 深入探索Python基础:两个至关重要的函数
  • 探索集合python(Set)的神秘面纱:它与字典有何不同?
  • 火山引擎“奇袭”阿里云
  • 牛客网刷题 | BC94 反向输出一个四位数
  • 记一次MySQL执行修改语句超时问题
  • linux fork()函数调用原理
  • 【电控笔记5.9】编码器脉冲计算速度MT法
  • go-zero 实战(4)
  • go语言泛型Generic最佳实践 --- slices包
  • 【神经网络结构可视化】使用 Visualkeras 可视化 Keras / TensorFlow 神经网络结构
  • nvm安装nodejs/npm/nvm笔记
  • 微信小程序源码-基于Java后端的小区租拼车管理信息系统毕业设计(附源码+演示录像+LW)
  • 嵌入式进阶——LED呼吸灯(PWM)
  • 一文读懂:http免费升级https
  • 算法刷题笔记 高精度除法(C++实现)
  • 按月爬取天气数据可视化展示
  • VMware安装Ubuntu系统(超详细)
  • 数据清洗操作及众所周知【数据分析】
  • 炫酷gdb
  • windows 7 10 11快捷键到启动页面
  • [处理器芯片]-6 超标量CPU实现之浮点运算
  • 又有人叫嚣:AI取代前端,来给你几张图,看能不能憋死AI。
  • ISCC2024个人挑战赛WP-WEB
  • Android 使用 adb 列出设备上所有危险权限
  • Spring AOP源码分析
  • [LLM]从GPT-4o原理到下一代人机交互技术
  • 【Spring】AOP——通知(Advice)
  • python中的一些基础概念
  • 8.Redis之hash类型