工具类从spring里面获取对象

  1. 创建工具类

    /**

    • spring容器的相关方法,如根据名称获取spring实例
    • @author 天真热
    • @create 2022-04-28 9:55
    • @desc
      **/

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

    @Component
    public class SpringContextUtils implements ApplicationContextAware {
    private static ApplicationContext applicationContext;

    复制代码
     @Override
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
         SpringContextUtils.applicationContext = applicationContext;
     }
    
     public static Object getBean(String name) {
         return applicationContext.getBean(name);
     }
    
     public static <T> T getBean(Class<T> requiredType) {
         return applicationContext.getBean(requiredType);
     }
    
     public static <T> T getBean(String name, Class<T> requiredType) {
         return applicationContext.getBean(name, requiredType);
     }
    
     public static boolean containsBean(String name) {
         return applicationContext.containsBean(name);
     }
    
     public static boolean isSingleton(String name) {
         return applicationContext.isSingleton(name);
     }
    
     public static Class<? extends Object> getType(String name) {
         return applicationContext.getType(name);
     }

    }

2.调用

ps:正常我们不指定类注入到spring的名称,默认都是使用"首字母小写的类名"作为名称

复制代码
 TaskRunKafkaLogService taskRunKafkaLogService = (TaskRunKafkaLogService) SpringContextUtils.getBean("taskRunKafkaLogServiceImpl");
相关推荐
shark_chili几秒前
Spring 核心知识点全面解析
后端
北风toto1 分钟前
IDEA模块名字和文件夹名字不一样的解决方式
java·ide·intellij-idea
程途知微2 分钟前
synchronized锁升级全流程解析
java
WavesMan3 分钟前
YoBFF 实战复盘:让审计日志从“可用”走向“可运营
后端
亓才孓6 分钟前
[Java笔试]易错点总结
java·开发语言
SimonKing8 分钟前
企微、QQ统统接入OpenClaw,蓄水池已满,准备养虾
java·后端·程序员
:1219 分钟前
java---过滤器,监听器
java·开发语言
CodeSheep15 分钟前
王自如公开招聘01号员工,这要求有多离谱?
前端·后端·程序员
洛阳泰山19 分钟前
我用 Java 21 虚拟线程重写了一个 RAG 平台:从架构设计到踩坑实录
java·人工智能·后端
永远睡不够的入21 分钟前
C++继承详解
java·c++·redis