package io.dataease.utils; import io.micrometer.common.util.StringUtils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component public class CommonBeanFactory implements ApplicationContextAware { private static ApplicationContext context; public CommonBeanFactory() { } public void setApplicationContext(ApplicationContext ctx) throws BeansException { context = ctx; } public static Object getBean(String beanName) { try { return context != null && !StringUtils.isBlank(beanName) ? context.getBean(beanName) : null; } catch (BeansException e) { return null; } } public static T getBean(Class className) { try { return context != null && className != null ? context.getBean(className) : null; } catch (BeansException e) { return null; } } public static ApplicationContext getApplicationContext() { return context; } public static T proxy(Class className) { try { return context != null && className != null ? context.getBean(className) : null; } catch (BeansException e) { return null; } } }