package com.vci.starter.web.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * spring的上下文工具, * @author dangsn * @date 2024/12/3 */ @Component public class ApplicationContextProvider implements ApplicationContextAware { /** * 应用的上下文 */ private static ApplicationContext applicationContext ; /** * 设置应用的上下文 * @param context 上下文 * @throws BeansException 出现错误时需要抛出异常给spring容器 */ @Override public void setApplicationContext(ApplicationContext context) throws BeansException { applicationContext = context; } /** * 获取应用的上下文 * @return 上下文 */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * @param name bean的名称 * @return Object bean的对象 * @throws BeansException 如果不存在会抛出异常 */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 获取对象 * @param c bean的接口类 * @param bean所属类的类型 * @return bean对象 * @throws BeansException 如果不存在会抛出异常 */ public static T getBean(Class c) throws BeansException{ return applicationContext.getBean(c); } }