import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* 通过ApplicationContex获取bean工具类
*
*/
@Component("applicationContextHelper")
public class ApplicationContextHelper implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
/**
* 根据类型获取bean
*
* @param clazz
* @param <T>
* @return
*/
public static <T> T popBean(Class<T> clazz) {
if (applicationContext == null) {
return null;
}
return applicationContext.getBean(clazz);
}
/**
* 根据名字和类型获取bean
*
* @param name
* @param clazz
* @param <T>
* @return
*/
public static <T> T popBean(String name, Class<T> clazz) {
if (applicationContext == null) {
return null;
}
return applicationContext.getBean(name, clazz);
}
}
并在使用时
ArticleService articleService = ApplicationContextHelper.popBean(ArticleService.class);
articleService.batchInsert(file.getPath());
ArticleService为目标clss,这样就能获取