本类主要解决定时任务 注入的对象找不到上下文,CV 即用
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class BeanFactory implements ApplicationContextAware {
static {
log.info("===BeanFactory init===");
}
private static ApplicationContext appContext;
@Override
public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException {
appContext = applicationContext;
}
/**
* 根据名称获取Bean
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
if (appContext == null){
return null;
}
return (T)appContext.getBean(name);
}
/**
* 根据类型获取Bean
*/
public static <T> T getBean(Class<T> name) throws BeansException {
if (appContext == null){
log.error("appContext is null !!!!! ");
return null;
}
return appContext.getBean(name);
}
}