@Component("applicationContextHelper")
public class ApplicationContextHelper implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static <T> T popBean(Class<T> clazz) {
if (applicationContext == null) {
return null;
}
return applicationContext.getBean(clazz);
}
public static <T> T popBean(String name, Class<T> clazz) {
if (applicationContext == null) {
return null;
}
return applicationContext.getBean(name, clazz);
}
}
springboot中需要对其进行初始化
@SpringBootApplication
@ComponentScan({"xxx.**.*"})
public class xxxApplication {
public static void main(String[] args) {
ApplicationContext context =SpringApplication.run(xxxApplication.class, args);
ApplicationContextHelper.setApplicationContext(context);
}
}