spring 中 ApplicationContextAware 接口使用例子

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置) 本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。 阅读详情

使用ApplicationContextAware接口的场景

在spring项目中,bean之间的依赖关系是 spring容器自动管理的,但是一个项目中有些类不在spring容器中却需要使用spring管理的bean,这时候不能通过正常的方式(注解等方式)注入bean,在spring中提供了ApplicationContextAware接口,通过ApplicationContextAware接口可以获取到spring上下文,从而从spring上下文中获取到需要的bean。
我们可以编写一个工具类来实现ApplicationContextAware,通过工具类来获取我们需要的bean在spring容器外的类调用bean的方法,具体代码如下:
工具类 SpringUtils.java

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

//此处使用注解的方式把工具类加入到容器中,可以使用xml,配置类等方式,必须要加入到容器中
@Component
public class SpringUtils implements ApplicationContextAware {
	private static ApplicationContext applicationContext;  
  //此方法是父类ApplicationContextAware 中的方法 重写
	@Override  
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {  
		if(SpringUtils.applicationContext == null){  
			SpringUtils.applicationContext  = applicationContext;  
		} 
    } 
	
    public static ApplicationContext getApplicationContext() {  
       return applicationContext;  
    }    
    public static Object getBean(String name){  
       return getApplicationContext().getBean(name);  
    }  
    public static <T> T getBean(Class<T> clazz){  
       return getApplicationContext().getBean(clazz);  
    }  
   public static <T> T getBean(String name,Class<T> clazz){  
       return getApplicationContext().getBean(name, clazz);  
    }
}

容器外类 TestAppContext.java

public class TestAppContext{
	//因为Person是容器中的bean TestAppContext不受spring容器管理 所以
	//这里不能通过正常的方式注入
	private Person person;
	public String getPersonName(){
		//通过bean的名称来获取bean
		person = (Person)SpringUtils.getBean("person");
		return person.getName();
	}
}

注:这种方式针对的是使用spring管理的web工程,spring容器在项目启动时开始创建,另外也适合Spring Boot的应用程序。

TMS_WebGMaps_1.9.8.0_Full_Source TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder 立即下载

相关推荐

HDFView安装及使用教程

简介:直接用记事本打开hdf5文件的话,是一团乱码。HDFView是用来查看hdf5文件的软件,可以免费使用,好多人都有闪退的情况,这是因为没有添加环境变量。

qq_43722079的博客 7万+

Spring的ApplicationContextAware的使用

Spring的ApplicationContextAware的使用1 问题引入2 ApplicationContextAware的简介3 使用场景 Spring中ApplicationContextAware主要用来获取Spring上下文已经实例化的Bean对象 1 问题引入 项目使用Spring管理各个实例对象Bean, 如果为了使用已被实例化的Bean对象,如果使用再次加载配置文件的方法,可能会出现一个问题,如一些线程配置任务, 会启动两份,产生了冗余. ApplicationContext app

ABestRookie的博客 7456

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 647

public class SpringUtils implements ApplicationContextAware代码的理解与使用

1提出问题 在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码: ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext-common.xml"); AbcService abcService = (AbcService)appContext.getBean("abcService"); 但是这样就会存

一个搬砖工人 1614

【Transformer 相关理论深入理解】注意力机制、自注意力机制、多头注意力机制、位置编码

transformer原理

qq_38253797的博客 2万+

深入解析PVT corner:从wcl到ml的芯片设计关键考量

本文深入解析了芯片设计中的PVT corner概念,重点探讨了从传统WC到先进工艺下WCL、ML等关键工艺角。文章详细阐述了温度反转效应如何使低温WCL成为最严苛的时序场景,并提供了基于先进工艺的实战签核策略与多角多模分析流程,确保芯片在极端工艺、电压、温度下的稳健性。

tree8的博客 527

Spring中的ApplicationContextAware接口的使用

最近在看项目代码时发现一个类在项目各个地方都能进行调用,仔细研究后发现这个类实现了ApplicationContextAware这个接口,这个接口可以很方便的获取到Spring的上下文applicationContext。现在就跟我来一起看看如何使用吧。 使用方法我们先新建一个测试类AppCache,在这个类中我定义了一个静态的DictService属性。而DictService类我也提前写好了,里

catalinaLi的博客 2499

高频电磁场仿真-主题064-伴随变量法与灵敏度分析

在电磁器件优化设计中,梯度信息对于指导优化方向至关重要。考虑一个典型的电磁优化问题: 其中 p=[p1,p2,...,pn]Tp = [p_1, p_2, ..., p_n]^Tp=[p1​,p2​,...,pn​]T 是设计参数向量(如几何尺寸、材料参数等)。传统有限差分法的困境:示例: 一个具有100个设计参数的天线优化问题伴随变量法(Adjoint Variable Method, AVM)通过引入伴随场,将梯度计算复杂度从 O(n)O(n)O(n) 降低到 O(1)O(1)O(1):伴随变量法在计算

kkchenjj的博客 411

Spring之ApplicationContextAware使用详解

Spring定义的类实现ApplicationContextAware接口会自动的将应用程序上下文加入,首先我们看下具体的实现示例; 1.示例代码 package com.yaomy.security.oauth2.filter; import org.springframework.beans.BeansException; import org.springframework.context...

OceanSky的专栏 2万+

零基础入门simulink仿真--通信领域的调制解调技术:基于Simulink的PM信号调制与解调仿真建模示例

PM的基本原理是将基带信号(如语音或音乐信号)加载到高频载波信号的相位上。通过改变载波的瞬时相位,可以实现信息的传输。PM的优点包括抗噪声能力强、频谱利用率较高等,但其解调过程相对复杂。通过Simulink,我们可以通过模块化的建模方式实现PM信号的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的PM信号调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解PM信号调制与解调的基本原理及其应用。所需工具和环境:列出进行PM仿真所需的工具和环境。

amy_mhd的博客 605

C#上位机部署YOLO模型:ONNX转换+推理加速+内存优化全攻略

本文针对C#上位机部署YOLO模型的三大痛点,提供从模型转换到优化部署的完整解决方案。首先介绍将YOLO模型转换为ONNX格式的必要性和方法,包括自动和手动两种转换方案及常见问题解决。然后详细讲解C#环境配置和基础部署流程,包括图像预处理、模型加载、推理计算和结果解析。最后提出推理加速和内存优化策略,通过硬件适配、多线程处理和资源复用等技术手段,实现工业场景下的高效稳定运行。全文提供可直接复用的代码片段和实测验证方案,覆盖YOLOv5/v7/v8全版本,帮助开发者快速实现轻量化部署。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 785

ApplicationContextAware使用实例

/**** * SpringContext 上下文 * 通过SpringContext获取Spring管理的业务Bean对象 * * @author 万文俊 * */ public class SpringContextUtil implements ApplicationContextAware { private static ApplicationC...

qq_22008531的博客 473

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

ApplicationContextAware接口

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

Pluto372的博客 3175

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

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

IDEA的使用指南

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

ApplicationContextAware接口的作用

首先,ApplicationContextAware这个接口是spring中的接口。 而我们知道,我们使用spring框架,一般就已经用配置文件和注释将bean的创建交给了spring,同样管理bean也交给了spring。这些都帮我们搞定了,我们都不用担心什么,只需要把相应的配置配好就行了...

chidang3244的博客 274

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SpringBoot 获取接口的所有实现类

SpringBoot 获取接口的所有实现类

Charge8的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【SpringBoot】ApplicationContextAware 与 @Autowired 注解效果是一样,但是时机不一样

如果将 LindContext 类中 @Component 注解去掉,没有将该 bean 注册到 spring 容器时,调用接口时会在 LindAware 中抛出对应的异常,来提示给开发人员如果将 LindAware 类中 this.lindContext = LindAware.applicationContext.getBean(LindContext.class);

yuxiangdeming的博客 1756

获取spring的ApplicationContext几种方式

Java类获取spring容器的bean 常用的5种获取spring 中bean的方式总结: 方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = newFileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId")

dsc2015的博客 425

嵌入式SPI隔离实战:MK51与MAX14431的时序、电源与PCB设计要点

在工业控制与数据采集场景中,SPI总线往往需要跨越功率器件与敏感电路之间的电气边界,此时数字隔离器就成为保障通信可靠性的关键器件。隔离器的作用不只是传输数据,更要从原理上解决地环路干扰与共模瞬态冲击问题。集成式数字隔离器将信号隔离与隔离电源合为一体,配合MCU的SPI外设参数配置、时序预算计算、PCB爬电设计以及隔离带开槽,才能构建完整的隔离链路。以NXP MK51DN512CLQ10搭配MAX14431BAEE+为例,工程实践中需重点处理DSPI的CTAR寄存器配置、最高SCK时钟的环路延迟评估、隔离侧电

weixin_34110749的博客 359

spring bean示例

Spring装配Bean的过程    1. 实例化;   2. 设置属性值;   3. 如果实现了BeanNameAware接口,调用setBeanName设置Bean的ID或者Name;   4. 如果实现BeanFactoryAware接口,调用setBeanFactory 设置BeanFactory;   5. 如果实现ApplicationContextAware,调用setAp

小虾记事 550

使用Spring的事件机制

最近一个项目,我们应用了Spring的事件机制,它是基于观察者设计模式的思想,但是有点差异的是还需要实现ApplicationContextAware,因为我们要拿到applicationContext来触发我们的事件,然后由Spring回调,将对象传进来,这样我们就可以很方便的访问所有的Bean,或者做一些其他的事情,比如发布事件。 还需要实现一个ApplicationListener,这个就...

iteye_15601的博客 133

java 容器类实例_Java类获取spring 容器的bean

Java类获取spring容器的bean常用的5种获取spring中bean的方式总结:方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("beanId");说明:这种方式适用于采用Spr...

weixin_30549779的博客 224

Java类获取spring 容器的bean

Java类获取spring 容器的bean 常用的5种获取spring 中bean的方式总结: 方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml")...

MayMatrix 的博客 110

spring在bean加载完成后初始化代码

只需要实现spring自带的一个接口InitializingBean 并把方法注册到spring容器中即可 package jpj.boot.listener; import com.alibaba.fastjson.JSON; import jpj.boot.service.UserService; import lombok.extern.log4j.Log4j2; im...

weixin_30677617的博客 558

spring start之三:自定义注解配合@Component使用解析

elasticSearch官网教程蛮丰富,这边就结合实践常用的做个记录学习 1:

飞奔的小土豆@1024 1987

认识 Spring IOC 及其应用

在 Spring 框架中,DI 的具体实现类是称为容器,我们通过容器生成一个个小齿轮(Bean),从创建、实例化、销毁等等都交由容器去实现,进一步解耦合调用者与被调用者的代码,并且,去除了大量重复和无意义的代码,方便测试,利于功能复用。Spring 框架为了让用户更为简单的配置 Bean,使用了注解的形式进行配置,而无需去使用麻烦的 XML 进行一一对象配置。

yumuing‘s blog 364
上一篇: A股芯片股龙头股,
下一篇: Spring面试高频考点
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值