package com.yupi.springbootinit.utils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * Spring 上下文获取工具 * * @author 程序员鱼皮 * @from 编程导航知识星球 */ @Component public class SpringContextUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(@NotNull ApplicationContext applicationContext) throws BeansException { SpringContextUtils.applicationContext = applicationContext; } /** * 通过名称获取 Bean * * @param beanName * @return */ public static Object getBean(String beanName) { return applicationContext.getBean(beanName); } /** * 通过 class 获取 Bean * * @param beanClass * @param * @return */ public static T getBean(Class beanClass) { return applicationContext.getBean(beanClass); } /** * 通过名称和类型获取 Bean * * @param beanName * @param beanClass * @param * @return */ public static T getBean(String beanName, Class beanClass) { return applicationContext.getBean(beanName, beanClass); } }