Java中通过class获取实例对象
package com.huawei.charging.domain; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component public class ApplicationContextHelper implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ApplicationContextHelper.applicationContext = applicationContext; } public static <T> T getBean(Class<T> targetClz) { T beanInstance = null; //优先按type查 try { beanInstance = (T)applicationContext.getBean(targetClz); } catch (Exception e) { } //按name查 if (beanInstance == null) { String simpleName = targetClz.getSimpleName(); //首字母小写 simpleName = Character.toLowerCase(simpleName.charAt(0)) + simpleName.substring(1); beanInstance = (T)applicationContext.getBean(simpleName); } if (beanInstance == null) { throw new RuntimeException("Component " + targetClz + " can not be found in Spring Container"); } return beanInstance; } public static Object getBean(String claz) { return ApplicationContextHelper.applicationContext.getBean(claz); } public static <T> T getBean(String name, Class<T> requiredType) { return ApplicationContextHelper.applicationContext.getBean(name, requiredType); } public static <T> T getBean(Class<T> requiredType, Object... params) { return ApplicationContextHelper.applicationContext.getBean(requiredType, params); } public static ApplicationContext getApplicationContext() { return applicationContext; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?