import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* SpringContextHolder
*
* @author ygr
* @date 2021/11/29 21:04
*/
@Component
public class SpringContextHolder implements ApplicationContextAware, EnvironmentAware {
private static ApplicationContext context;
private static Environment environment;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextHolder.context = applicationContext;
}
@Override
public void setEnvironment(Environment environment) {
SpringContextHolder.environment = environment;
}
public static ApplicationContext getContext() {
return context;
}
public static Environment getEnvironment() {
return environment;
}
public static <T> T getBean(Class<T> requireType) {
return context.getBean(requireType);
}
public static Object getBean(String beanName) {
return context.getBean(beanName);
}
public static <T> T getBean(String beanName, Class<T> requireType) {
return context.getBean(beanName, requireType);
}
public static <T> Map<String, T> getBeans(Class<T> requireType) {
return context.getBeansOfType(requireType);
}
public static String getConfigProperty(String key) {
return environment.getProperty(key);
}
public static <T> T getConfigProperty(String key, Class<T> type) {
return environment.getProperty(key, type);
}
public static void publishEvent(ApplicationEvent event) {
context.publishEvent(event);
}
}
相关推荐
YF-S401水流量传感器在STM32上的精准计量实现
本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。
Spring框架中事件发布及其原理
Spring框架中事件发布及其原理事件源发布事件定义事件源定义事件定义监听器测试springContextHolderApplicationContextAware接口ApplicationContext发布事件的原理AbstractApplicationContext事件广播earlyApplicationEventsApplicationEventMulticasterSimpleApplicationEventMulticaster总结附录 在业务系统中,当多个模块之间需要进行通信的时候,事件可以作
【sap2000】部分模型通过.s2k文件合并模型generating a global model through partial models by .s2k text file
现在需要通过选项File → Import → SAP2000 .s2k Text File → Add to existing model(如果使用其中一个部分模型作为基础)或New model(如果使用新文件)添加部分模型,并使用以下导入选项。模型A(阶段1/5) Model A (Phase 1/5)模型B(阶段2/5) Model B (Phase 2/5)模型C(阶段3/5) Model C (Phase 3/5)模型E(阶段5/5) Model E (Phase 5/5)
Spring Boot:Spring Event的初步讲解
Spring提供了Event的功能,只要添加了spring-context依赖就可以引入,简单好用。 要使用Event只要准备三个部分: 事件类:定义事件,继承ApplicationEvent的类成为一个事件类。 发布者:发布事件,通过ApplicationEventPublisher发布事件。 监听者:监听并处理事件,实现ApplicationListener接口或者使用@EventListener注解 举个例子 定义发布者 事件源通常是某个业务类,当它处理完自身的业务
到底什么是电源的斜波补偿,电源芯片CS引脚作用,一文讲清楚!
上文有提到电流环,其实电流环再细分也有很多模式,用的最多的是峰值电流模式峰值电流模式调节工作原理如下:(1)当输出负载增大时,输出电压降低,因此,Vc 增大,线性增加的电感电流只有升高到更大的值才能使 PWM 电流比较器翻转,开关管导通的时间增长,占空比增加,输入功率增加,因此输出电压增加,当输出电压增加到调节的范围内时,系统保持平衡。
基于YOLOv8的多类别检测模型融合实战:从数据集重构到模型训练
本文详细介绍了如何将多个单一类别的YOLOv8检测模型融合为一个高效的多类别检测模型。通过重构数据集、利用预训练模型生成新标签,并重新训练,解决了多模型并行带来的速度慢、资源占用高和部署复杂等问题。实战流程涵盖数据准备、标签生成、模型训练与评估,旨在帮助开发者构建性能优异的YOLOv8多类别检测模型。
【Spring】Spring之publishEvent
【Spring】Spring之publishEvent
工业自动化实战:用LabVIEW的DSC模块实现MODBUS-TCP设备控制
本文详细介绍了如何利用LabVIEW的DSC模块实现工业自动化中的MODBUS-TCP设备控制。通过环境准备、核心功能解析、状态机实现及典型工业场景实战,帮助工程师快速掌握稳定可靠的通讯技术,提升工业自动化系统的运行效率。
SpringCloud Alibaba 2021微服务实战二十二 项目优化之异步处理日志syslog @Async @EventListener注解的应用
原理讲解 AOP 切面获取当前请求的注解值,并 异步 发送时间,减少日志操作的性能损耗 监听器在接收到日志事件后进行调用feign入口处理 @EventListener注解的应用 在开发工作中,会遇到一种场景,做完某一件事情以后,需要广播一些消息或者通知,告诉其他的模块进行一些事件处理,一般来说,可以一个一个发送请求去通知,但是有一种更好的方式,那就是事件监听,事件监听也是设计模式中 发布-订阅模式、观察者模式的一种实现。 观察者模式:简单的来讲就是你在做事情的时候身边有人在盯着你,当你做的某.
课堂练习及课后作业2.1:外部中断
本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。分析版本1内核,找到第一次时钟中断的恢复点地址。
《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(二)
《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选
SpringContextHolder 作用
以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext. 使用方式。在启动类里添加Bean package com.yl; import com.yl.utils.SpringContextHolder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAppli
Office系列完全干净卸载工具合集(最全)
使用 Microsoft Fix it 卸载 Microsoft Office 套件 一、Windows 7、Windows Vista或Windows XP下卸载Office 1.MicrosoftEasyFix50416 工具用来卸载office 2003 MicrosoftEasyFix50416_Office2003.msi 2.MicrosoftEasyFix50154 工具用来卸载office 2007 MicrosoftEasyFix50154_Office2007.msi 3.Microso
使用SpringContextHolder获取bean实例
昨天在开发的时候遇到一个小问题,本来博主在写Excel的导出,但是Excel所有数据都是动态的,需要根据用户id将用户名显示出来,此时就需要调用用户服务。由于ExcelExportUtil这个类是我自己封装的,用于导出的工具类。里面所有方法都是静态的。这时,如果使用@Autowired注解装配bean,是无法在静态...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
SpringContextHolder工具类
2019独角兽企业重金招聘Python工程师标准>>> ...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
SpringContextHolder工具类---通过springContextHolder静态注入实体Bean
/** * Copyright &copy; All rights reserved. */ import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.Dispo...
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
SpringBoot中SpringContextHolder工具类使用
SpringContextHolder作用: 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext。 SpringContextHolder @Component public class SpringContextHolder implements ApplicationContextAware { /** * 以静态变量保存ApplicationContext,可在任意代码中取出Applicaiton
使用SpringContextHolder获取bean
我们通常在utils工具类中写方法,想注入一些bean进去,但是发现@Autowired没有用,因为我们utils工具类中的方法是static修饰的方法,里面只能调static修饰的方法,和使用对象是static的。正常情况下@Autowired无法注入静态的bean,于是可以使用如下方法: private static ITokenService iTokenService = Spring...
SpringContextHolder工具类获取spring对象
SpringContextHolder工具类获取spring对象 通过springContextHolder静态注入实体Bean 1.工具类用途? 该工具类主要用于那些没有归入spring框架管理的类却要调用spring容器中的bean提供的工具类,在spring中要通过IOC依赖注入来取得对应的对象,但是该类通过实现ApplicationContextAware接口,以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonConte
SpringContextHolder使用报错
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dobecoder/article/details/88401612今天在使用SpringContextHolder来获取一个bean的时候出现错误,报错如下:java.lang.IllegalStateException: applicaitonContext属性未注入, 请在application...
SpringContextHolder直接从spring容器中获取bean
参考一: SpringContextHolder直接从spring容器中获取bean 创建类 SpringContextHolder import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframe
SpringContextHolder的作用
** 项目SSH,spring项目SpringContextHolder的作用 今天在一个utils包下的文件中写一个方法的时候想去使用@autowired注入一些对象,但发现不可以直接使用@Autowired,因为方法是static,方法中使用的对象也必须是static,但正常情况下@Autowired无法注入静态的bean,于是发现项目中用到了springContextHolder 写一个工具类 比如BaseHolder 实现ApplicationContextAware接口 package com.
SpringContextHolder获取bean
前景,工具类的某个方法想要获取bean的实例,但是工具类的方法是static的,不能使用@Autowired 注入。想了一下,可以通过SpringContextHolder在工具类中使用 //示例调用代码代码 private static EmailService emailService = SpringContextHolder.getBean(EmailService.class); ...
897



被折叠的 条评论
为什么被折叠?



