Spring之ApplicationContextAware的作用

Chronos时间序列预测实战:从零开始微调你的第一个大语言模型(附完整代码) 本文提供了一份详细的Chronos时间序列预测大语言模型微调实战指南。从环境搭建、数据预处理到模型配置与训练,手把手教你如何利用自己的数据微调Chronos模型,并完成评估与部署,助你快速掌握这一前沿技术。 阅读详情

前言

在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该Bean先获取Spring容器,然后借助于Spring容器实现该功能。为了让Bean获取它所在的Spring容器,可以让该Bean实现ApplicationContextAware接口,这样可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取Spring配置文件中,所有有引用到的Bean对象。

1. ApplicationContextAware示例工具类

@Component
public class SpringUtil implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if(SpringUtil.applicationContext == null) {
            SpringUtil.applicationContext = applicationContext;
        }
    }

    //获取applicationContext
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    //通过name获取 Bean.
    public static Object getBean(String name){
        return getApplicationContext().getBean(name);
    }

    //通过class获取Bean.
    public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
    }

    //通过name,以及Clazz返回指定的Bean
    public static <T> T getBean(String name,Class<T> clazz){
        return getApplicationContext().getBean(name, clazz);
    }
}

Spring容器会检测容器中的所有Bean,如果发现某个Bean实现了ApplicationContextAware接口,Spring容器会在创建该Bean之后,
自动调用该Bean的setApplicationContext()方法,调用该方法时,会将容器本身作为参数传给该方法——该方法中的实现部分将Spring传入的参数(容器本身)赋给该类对象的applicationContext实例变量,因此接下来可以通过该applicationContext实例变量来访问容器本身。
 

 该示例由于调用的是redisTemplate实例 需要集成Redis后调用

@RunWith(SpringRunner.class)
@SpringBootTest
public class CommonDemoApplicationTests {

	@Test
	public void redisBenTest() {
        RedisTemplate redisTemplate = (RedisTemplate)SpringUtil.getBean("redisTemplate");

        redisTemplate.opsForValue().set("test",1);

		System.out.println("redisValue:"+redisTemplate.opsForValue().get("test"));
	}

}

运行结果:

 

OpenCV函数用法之calibrateCamera 参考链接:opencv中标定函数calibrateCamera_ychl87的专栏-优快云博客 世界坐标系的三维点投影到成像坐标系中的二维点的投影公式如下: 其中(X,Y,Z)为世界坐标系中的三维点; (u,v)为成像面坐标系中的二维点; A为相机的内参数矩阵:(cx,cy)为主光轴点,一般为图像的中心;fx和fy为焦距; [R|t]为相机的外参数矩阵:R为旋转矩阵,t为位移矩阵; 上述公式的简单推理过程如下 考虑到镜头畸变 其中,k1,k2,k3,k4,k5和k6为径向畸变,p1和. 阅读详情

相关推荐

智能检查点优化:动态频率与差异化存储的断点续训实践(模型训练丨容错机制丨人工智能)

本文深入探讨了大规模模型训练中智能检查点优化的核心实践。针对传统固定频率保存导致的存储浪费与恢复缓慢问题,提出了基于损失变化率的动态频率算法与分层差异化存储策略。通过PyTorch代码示例,详细展示了如何实现动态调度与增量保存,有效降低存储成本,并确保训练中断后能快速、可靠地恢复,显著提升训练任务的容错能力与经济效益。

weixin_29072299的博客 333

实现了ApplicationContextAware接口

ApplicationContextAware类的使用方式

qq_37388841的博客 1173

从二极管到CMOS:手把手教你搭建数字电路中的基础门电路(附原理图)

本文详细介绍了数字电路中基础门电路的搭建方法,从二极管门电路到现代CMOS门电路的设计与实现。通过原理图解析和实战案例,帮助读者掌握数字电路设计的核心知识,包括电平实现、门电路工作原理及实际调试技巧,适合电子技术爱好者和初学者学习参考。

weixin_29252171的博客 321

springboot拓展接口ApplicationContextAware的应用场景

springboot的核心扩展接口应用分享,持续更新,不断学习~

m0_59588838的博客 1362

从零搭建Obsidian智能知识库:Ollama本地模型与Copilot插件实战指南

本文详细介绍了如何从零搭建Obsidian智能知识库,结合Ollama本地模型与Copilot插件实现高效知识管理。通过本地部署AI助手,用户可以在保证隐私安全的同时,快速检索和整理笔记,提升工作效率。文章涵盖硬件准备、Ollama部署、插件配置及实战技巧,适合需要高效知识管理的专业人士。

weixin_29230773的博客 631

东方财富网 数据访问接口及字段说明

东方财富网 数据访问接口和字段说明

雨中山草 2万+

ApplicationContextAware接口

方法都是 IOC 容器启动时最核心的方法。bean初始化时各个扩展点的执行顺序。

Pluto372的博客 3175

AI市场风起云涌,ai浏览器是最佳的落地项目,现在ai市场的ai浏览器竞争加剧,得ai浏览器者得天下!

从场景覆盖度来看,AI 浏览器已突破 “网页浏览” 的传统边界,成为连接个人生活、工作、消费的 “超级入口”,这是其他 AI 应用难以比拟的落地优势。在个人生活场景,AI 浏览器可基于用户行为数据主动提供服务 —— 当用户浏览马拉松赛事信息时,浏览器能自动生成 “训练计划 + 装备推荐 + 能量补给方案”,并关联预订链接;在工作场景,Opera Neon 浏览器已实现 “网页内容提取 - 代码生成 - 报告撰写” 的全流程辅助,开发者可直接在浏览器内完成网站开发初稿;

zhang9880000的博客 1086

ApplicationContextAware详解用法

ApplicationContextAware用法 当一个类实现了这个接口之后,这个类就可以方便的获得ApplicationContext对象(spring上下文),Spring发现某个Bean实现了ApplicationContextAware接口,Spring容器会在创建该Bean之后,自动调用该Bean的setApplicationContext(参数)方法,调用该方法时,会将容器本身ApplicationContext对象作为参数传递给该方法。 案例 package com.lyj.demo.uti

qq_40093255的博客 2万+

从 ST22 到根因定位:ABAP Dumps 全景排查指南(含典型 Dump 案例、修复套路与云时代实践)

本文系统介绍了SAP系统中ABAP短转储(Dump)的分析方法。首先指出短转储是程序运行时无法处理的错误导致系统强制终止执行。文章详细解析了短转储报告各区块的作用:从概述性的Short Text和What happened,到核心的Error Analysis和Source Code Extract,再到关键的系统字段Contents of system fields和调用栈Active Calls/Events。针对不同场景提供了排查建议:客户代码应建立可控边界,标准对象优先查阅SAP Notes。最后推

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 485

视图库对接系列(GA-T 1400)四、视图库对接系列(本级)注册

在之前的步骤中,我们已经把项目大体的架构已经写出来了。那我们就来实现注册接口。GA-T 1400中的步骤如下:这里的话,我们实现的简单点, 我们不进去鉴权,也就是设备或平台找我们注册的话,我们直接返回成功,不进行验证。如果需要鉴权的话可看我的另外一篇文档。

qq_37716298的博客 1044

ApplicationContextAware使用理解

问题背景 在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码: ApplicationContext appContext = new ClassPathXmlApplicationContext(“applicationContext-common.xml”); AbcService abcService = (Ab...

gghh2015的博客 693

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Spring中ApplicationContextAware的作用

Spring中ApplicationContextAware的作用 ApplicationContextAware 通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContext方法。 我们在ApplicationContextAware的实现类中,就可以通过这个上下文环境对象得到Spring容器中的Bean。 看到—Aware就知道是干什么的了,就是属性注入的,但是这个ApplicationContextAware的不同地方

紫宇寰的Java小屋 314

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring中ApplicationContextAware接口的作用

加载Spring配置文件时,如果Spring配置文件中所定义的Bean类实现了ApplicationContextAware 接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的 public void setApplicationContext(ApplicationContext context) throws BeansExceptio

我的IT人生 681

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring-ApplicationContextAware接口的作用

在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的依赖注入即可。 但在某些特殊的情况下,Bean需要实现某个功能,但该功能必...

u010277958的博客 375

Spring学习——ApplicationContextAware接口的作用

spring体系中的ApplicationContextAware接口。 在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的...

shixinbing的博客 234

【SpringBoot应用篇】Spring中ApplicationContextAware接口的作用

ApplicationContextAware类 当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有 bean。换句话说,就是这个类可以直接获取 Spring 配置文件中,所有有引用到的 Bean 对象。 在某些特殊的场景下,Bean需要实现某个功能,但该功能必须借助于Spring容器中的其他Bean才能实现,此时就必须让该Bean先获取Spring容器,然后借助于Spring容器实现该功能。为了让Bean获取它所在

输入技术、输出想法 913

Spring的ApplicationContextAware接口的作用

ApplicationContextAware接口:   当一个类实现了这个接口之后,这个类就可以方便地获得 ApplicationContext 中的所有bean。换句话说,就是这个类可以直接获取Spring配置文件中,所有有引用到的bean对象。   Spring容器会检测容器中的所有Bean,如果发现某个Bean实现了ApplicationContextAware接口,Spri...

weixin_30311605的博客 79

Spring,ApplicationContextAware的作用

Donald_Draper的专栏 170

Spring ApplicationContextAware,InitializingBean 作用以及使用学习总结 spring bean初始化流程总结

ApplicationContextAware sping 框架提供的用于获取应用环境启动后获取(ApplicationContext)环境上下文 和容器中的bean ApplicationContextAware 直译过来即 “应用程序上下文感知” 常见用法即工具类 import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.sprin

weixin_44131922的博客 2894

spring各种接口的作用FactoryBean、ApplicationContextAware、InitializingBean

FactoryBean 当配置文件中&lt;bean&gt;的class属性配置的实现类是FactoryBean时,通过 BeanFactory#getBean()方法返回的不是FactoryBean本身,而是FactoryBean#getObject()方法所返回的对象,相当于FactoryBean#getObject()代理了getBean()方法 public interface F...

要么牛逼,要么牛逼 607

从1写到500为何总失败?概率、注意力与规则设计揭秘

概率论中的独立事件连乘效应揭示了一个反直觉的事实:即使单个环节的准确率极高,串联数百个环节后的累计成功率也会指数级下降。同时,持续注意力作为有限的认知资源,在单调重复任务中会随时间快速衰减,导致失误率飙升。理解这些原理,不仅有助于在工程设计与质量控制中建立更可靠的防错机制,也能让我们看清街头挑战类游戏背后的行为设计逻辑。以“从1写到500赢奖品”为例,摊主利用概率偏差、锚定效应和沉没成本心理,将看似简单的书写任务包装成稳赚的博弈局。本文拆解其数学概率与心理机制,揭示规则细节如何影响人的决策与表现。

weixin_33997389的博客 256

spring异步执行程序ApplicationContextAware接口的作用

在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的依赖注入即可。 但在某些特殊的情况下,Bean需要实现某个功能,但该功能必...

止境博客 429
上一篇: GoF设计模式(四) - 建造者模式
下一篇: GoF设计模式(五) - 原型模式(浅复制与深复制)
让程序飞
博客等级 码龄10年 8831粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让程序飞

您的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值