SpringBoot 之 普通类获取Spring容器中的bean

java 复制代码
package me.shijunjie.util;

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

@Component
public class SpringUtil implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if(SpringUtil.applicationContext == null) {
            SpringUtil.applicationContext = applicationContext;
        }
        System.out.println("---------------------------------------------------------------------");

        System.out.println("---------------------------------------------------------------------");

        System.out.println("---------------me.shijunjie.util.SpringUtil------------------------------------------------------");

        System.out.println("========ApplicationContext配置成功,在普通类可以通过调用SpringUtils.getAppContext()获取applicationContext对象,applicationContext="+SpringUtil.applicationContext+"========");

        System.out.println("---------------------------------------------------------------------");
    }

    //获取applicationContext
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    //通过name获取 Bean.
    public static Object getBean(String name){
        return getApplicationContext().getBean(name);
    }

    //通过class获取Bean.
    public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
    }

    //通过name,以及Clazz返回指定的Bean
    public static <T> T getBean(String name,Class<T> clazz){
        return getApplicationContext().getBean(name, clazz);
    }

}

参考链接:https://www.cnblogs.com/s648667069/p/6489557.html

相关推荐
小锋java12348 小时前
LangChain4j 来了,Java AI智能体开发再次起飞。。。
java·人工智能·后端
敖正炀8 小时前
BlockingQueue 详解
java
likerhood8 小时前
java中的return this、链式编程和Builder模式
java·开发语言
spring2997928 小时前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
未来转换9 小时前
基于A2A协议的生产应用实践指南(Java)
java·开发语言·算法·agent
后端漫漫9 小时前
Redis 配置文件与服务功能
java·redis
Dwzun9 小时前
基于Java+SpringBoot+Vue的校园二手物品置换系统设计与实现【附源码+文档+部署视频+讲解】
java·开发语言·spring boot
polaris06309 小时前
Spring Boot 项目开发流程全解析
java·spring boot·log4j
2601_949815339 小时前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
zuowei28899 小时前
spring实例化对象的几种方式(使用XML配置文件)
xml·java·spring