@Component
public class SpringHolder implements ApplicationContextAware{
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext){
SpringHolder.applicationContext=applicationContext;
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
public static <T> T getBean(Class<T> clazz){
return (T)applicationContext.getBean(clazz);
}
}
如果需要在一个工具方法中注入一个spring的bean,可以使用上面的工具方法进行懒加载
public static void calculate(){
CalculateService. service=(CalculateService)SpringHolder.getClass(CalculateService.class);
service.calculate();
}