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

Spring工具类(获取bean,发布事件)

spring-beans-5.3.1.jar

@Component
public final class SpringUtils implements BeanFactoryPostProcessor{/*** Spring应用上下文环境*/private static ConfigurableListableBeanFactory beanFactory;//初始化成员变量@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {SpringUtils.beanFactory = beanFactory;}/*** 获取对象** @param name* @return Object 一个以所给名字注册的bean的实例* @throws org.springframework.beans.BeansException*/@SuppressWarnings("unchecked")public static <T> T getBean(String name) throws BeansException {return (T) beanFactory.getBean(name);}/*** 获取类型为requiredType的对象** @param clz* @return* @throws org.springframework.beans.BeansException*/public static <T> T getBean(Class<T> clz) throws BeansException {T result = (T) beanFactory.getBean(clz);return result;}/*** 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true** @param name* @return boolean*/public static boolean containsBean(String name) {return beanFactory.containsBean(name);}/*** 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)** @param name* @return boolean* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException*/public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {return beanFactory.isSingleton(name);}/*** @param name* @return Class 注册对象的类型* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException*/public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {return beanFactory.getType(name);}/*** 如果给定的bean名字在bean定义中有别名,则返回这些别名** @param name* @return* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException*/public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {return beanFactory.getAliases(name);}
}
/*** SpringContext* @author jack*/
@Slf4j
@Service
@Lazy(false)
public class SpringContextHolder implements ApplicationContextAware, DisposableBean {private static ApplicationContext applicationContext = null;/*** 取得存储在静态变量中的ApplicationContext.*/public static ApplicationContext getApplicationContext() {return applicationContext;}/*** 实现ApplicationContextAware接口, 注入Context到静态变量中.*/@Overridepublic void setApplicationContext(ApplicationContext applicationContext) {SpringContextHolder.applicationContext = applicationContext;}/*** 清除SpringContextHolder中的ApplicationContext为Null.*/public static void clearHolder() {if (log.isDebugEnabled()) {log.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext);}applicationContext = null;}/*** 发布事件** @param event*/public static void publishEvent(ApplicationEvent event) {if (applicationContext == null) {return;}applicationContext.publishEvent(event);}/*** 实现DisposableBean接口, 在Context关闭时清理静态变量.*/@Override@SneakyThrowspublic void destroy() {SpringContextHolder.clearHolder();}/*** 获取运行环境* @return*/public static String getActiveProfile() {return applicationContext.getEnvironment().getActiveProfiles()[0];}}

相关文章:

Spring工具类(获取bean,发布事件)

spring-beans-5.3.1.jar Component public final class SpringUtils implements BeanFactoryPostProcessor{/*** Spring应用上下文环境*/private static ConfigurableListableBeanFactory beanFactory;//初始化成员变量Overridepublic void postProcessBeanFactory(Configurab…...

腾讯云和阿里云服务器折扣对比_看看哪家划算?

阿里云服务器和腾讯云服务器根据购买时长可以享受一定的优惠折扣&#xff0c;综合对比下来腾讯云折扣更低&#xff0c;阿腾云来对比下阿里云和腾讯云的云服务器根据购买时长可以享受的常规折扣对比&#xff1a; 目录 阿里云和腾讯云折扣对比 阿里云服务器常规折扣 腾讯云服…...

GO语言中的Defer与Error异常报错详细教程

目录标题 一、Defer1. Example2. Deferred methods 延迟方法3. Arguments evaluation 延迟参数4. Stack of defers 延迟程序堆栈5. Practical use of defer 实际使用 二、Error1. Example2. PathError3. DNSError4. Direct Comparison 直接比较5. Do not ignore errors 不要忽略…...

AP6315 DC单节锂电池充电IC 同步2A锂电芯片

概述 是一款面向5V交流适配器的2A锂离子电池充电器。它是采用1.5MHz固定频率的同步降压型转换器&#xff0c;因此具有高达90%以上的充电效率&#xff0c;自身发热量极小。包括完整的充电终止电路、自动再充电和一个达1%的4.2V预设充电电压&#xff0c;内部集成了防反灌保护、输…...

PDF校对工具正式上线,为用户提供卓越的文档校对解决方案

为满足当下对数字化文档校对的精准需求&#xff0c;我们今日正式发布全新的PDF校对工具。经过深入的技术研发与细致的测试&#xff0c;该工具旨在为企业和个人用户带来一个高效且准确的PDF文档校对平台。 PDF校对工具的主要特性&#xff1a; 1.全面性校对&#xff1a;工具支持…...

WSL 配置 Oracle 19c 客户端

Windows WSL 登陆后显示如下: Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantageSystem information as…...

ChatGPT⼊门到精通(1):ChatGPT 是什么

⼀、直观感受 1、公司 OpenAI&#xff08;美国&#xff09; 2、官⽅⽹站 3、登录ChatGPT ![在这里插入图片描述](https://img-blog.csdnimg.cn/26901096553a4ba0a5c88c49b2601e6a.png 填⼊帐号、密码&#xff0c;点击登录。登录成功&#xff0c;如下 3、和ChatGPT对话 开始…...

idea启动正常,打成jar包时,启动报错

背景 自己写了个小程序&#xff0c;在idea中启动正常&#xff0c;达成jar包发布时&#xff0c;启动报错。 Caused by: java.sql.SQLException: unknown jdbc driver : at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:517) at com.alibaba.druid.pool…...

软考高级系统架构设计师系列论文八十九:论软件需求分析方法和工具的选用

软考高级系统架构设计师系列论文八十九:论软件需求分析方法和工具的选用 一、软件需求相关知识点二、摘要三、正文四、总结一、软件需求相关知识点 软考高级系统架构设计师:论软件需求管理...

java八股文面试[JVM]——类加载器

一、类加载器的概念 类加载器是Java虚拟机用于加载类文件的一种机制。在Java中&#xff0c;每个类都由类加载器加载&#xff0c;并在运行时被创建为一个Class对象。类加载器负责从文件系统、网络或其他来源中加载类的字节码&#xff0c;并将其转换为可执行的Java对象。类加载器…...

CSS中如何实现元素之间的间距(Margin)合并效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 外边距合并的示例&#xff1a;⭐ 如何控制外边距合并&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff…...

【实操干货】如何开始用Qt Widgets编程?(三)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 在本文中&#xff0…...

基于深度学习的图像风格迁移发展总结

前言 本文总结深度学习领域的图像风格迁移发展脉络。重点关注随着GAN、CUT、StyleGAN、CLIP、Diffusion Model 这些网络出现以来&#xff0c;图像风格迁移在其上的发展。本文注重这些网络对图像风格迁移任务的影响&#xff0c;以及背后的关键技术和研究&#xff0c;并总结出一…...

小程序页面间有哪些传递数据的方法?

使用全局变量实现数据传递 在 app.js 文件中定义全局变量 globalData&#xff0c; 将需要存储的信息存放在里面使用的时候&#xff0c;直接使用 getApp() 拿到存储的信息 App({// 全局变量globalData: {userInfo: null} }) 使用 wx.navigateTo 与 wx.redirectTo 的时候&…...

bh002- Blazor hybrid / Maui 保存设置快速教程

1. 建立工程 bh002_ORM 源码 2. 添加 nuget 包 <PackageReference Include"BootstrapBlazor.WebAPI" Version"7.*" /> <PackageReference Include"FreeSql" Version"*" /> <PackageReference Include"FreeSql.…...

同源政策与CORS

CORS意为跨源资源共享&#xff08;Cross origin resource sharing&#xff09;&#xff0c;它是一个W3C标准&#xff0c;由一系列HTTP Header组成&#xff0c;这些 HTTP Header决定了浏览器是否允许JavaScript 代码成功获得跨源请求的服务器响应。 在说CORS之前&#xff0c;先…...

科技资讯|三星再申请智能戒指商标,智能穿戴进入更小型化发展

三星正在积极扩展可穿戴设备生态&#xff0c;近日向英国知识产权局提交了名为“Samsung Curio”的新商标&#xff0c;其分类为“Class 9”&#xff0c;可能会用于未来的智能戒指。 智能戒指&#xff1a; 可穿戴计算机本质上的智能手环、智能项链、智能眼镜和智能戒指&#xff1…...

HarmonyOS开发第一步,熟知开发工具DevEco Studio

俗话说的好&#xff0c;工欲善其事&#xff0c;必先利其器&#xff0c;走进HarmonyOS第一步&#xff0c;开发工具必须先行&#xff0c;当然了&#xff0c;关于开发工具的使用&#xff0c;官网和其他的博客也有很多的讲解&#xff0c;但是并没有按照常用的功能进行概述&#xff…...

【应急响应】Linux常用基础命令

文章目录 文件和目录操作文件内容查看和编辑系统信息查询权限管理进程管理网络管理 文件和目录操作 ls&#xff1a;列出目录内容&#xff08;例如 ls -l 显示详细信息&#xff09; cd&#xff1a;切换工作目录 pwd&#xff1a;显示当前工作目录 touch&#xff1a;创建空文件&a…...

什么是Pytorch?

当谈及深度学习框架时&#xff0c;PyTorch 是当今备受欢迎的选择之一。作为一个开源的机器学习库&#xff0c;PyTorch 为研究人员和开发者们提供了一个强大的工具来构建、训练以及部署各种深度学习模型。你可能会问&#xff0c;PyTorch 是什么&#xff0c;它有什么特点&#xf…...

告别低效收藏:MarkDownload让网页内容保存效率提升300%

告别低效收藏&#xff1a;MarkDownload让网页内容保存效率提升300% 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownload …...

突破远程桌面限制:RDP Wrapper实现多用户并发连接的创新解决方案

突破远程桌面限制&#xff1a;RDP Wrapper实现多用户并发连接的创新解决方案 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 副标题&#xff1a;适用于Windows Vista至Windows 11全版本的远程桌面功能扩展工具 在…...

保姆级教程:ROS1/ROS2下rosbag录制与播放的10个实战技巧(含脚本与launch文件)

ROS1/ROS2高效数据管理&#xff1a;rosbag录制与播放的工程化实践指南 第一次接触rosbag时&#xff0c;我花了整整三天时间才搞明白为什么录制的数据总是无法正常播放。当时在实验室调试移动机器人&#xff0c;每次测试都要重新跑一遍完整流程&#xff0c;效率低得令人抓狂。直…...

3步玩转Balena Etcher:开源镜像烧录工具完全指南

3步玩转Balena Etcher&#xff1a;开源镜像烧录工具完全指南 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher Balena Etcher是一款开源跨平台镜像烧录工具&#x…...

Prompt Optimizer

链接&#xff1a;https://pan.quark.cn/s/3d42e4512934Prompt Optimizer v2.2.1是一款开源AI提示词优化工具&#xff0c;致力于通过智能算法提升提示词质量&#xff0c;支持多模型集成和图像生成功能。它提供桌面应用、Docker部署等多种方式&#xff0c;帮助用户快速获得精准的…...

UniHacker:Unity引擎功能探索的技术研究指南

UniHacker&#xff1a;Unity引擎功能探索的技术研究指南 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker 技术研究免责声明 本指南所述工具及方法仅用于技术…...

实测2公里矿用电缆跑网络:用电力载波模块替代光纤,在井下到底靠不靠谱?

井下网络传输技术突围&#xff1a;电力载波在恶劣环境中的实战评估 矿场深处&#xff0c;昏暗潮湿的巷道里&#xff0c;一组工程师正为数据传输问题焦头烂额。传统光纤在煤尘弥漫的环境中频频失效&#xff0c;而工期又迫在眉睫。这时&#xff0c;有人提出了一个大胆的方案——利…...

告别龟速下载:用阿里云镜像源5分钟搞定CentOS 8 Stream + 宝塔面板环境

极速部署CentOS 8 Stream与宝塔面板&#xff1a;阿里云镜像实战指南 每次在服务器上配置环境时&#xff0c;最让人抓狂的就是漫长的等待时间。特别是当需要从国外官方源下载安装包时&#xff0c;那个进度条简直像蜗牛爬行。我曾经花了整整一个下午只为安装基础环境&#xff0c;…...

Vue3最新版二维码生成避坑指南:从基础配置到企业级定制(附GitHub源码)

Vue3企业级二维码生成实战&#xff1a;从核心原理到性能优化 二维码作为连接物理世界与数字世界的桥梁&#xff0c;在现代Web应用中扮演着重要角色。本文将带您深入Vue3的二维码生成技术栈&#xff0c;不仅涵盖基础实现&#xff0c;更聚焦企业级应用中的高阶技巧与性能优化方案…...

视频解析工具:高效获取无水印视频的技术实践与生态构建

视频解析工具&#xff1a;高效获取无水印视频的技术实践与生态构建 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容创作与研究领域&#xff0c;视频资源的高效获取已成为基础需求。然而平台访问限…...