use of com.virjar.vscrawler.web.api.SpringContextAware in project vscrawler by virjar.
the class VSCrawlerClassLoader method loadCrawler.
/**
* @param crawlerEntryName 爬虫入口类,应该是com.virjar.vscrawler.web.crawler.CrawlerBuilder的实现类
* @return 由入口类构造的一个爬虫对象
* @see CrawlerBuilder
*/
public CrawlerBean loadCrawler(String crawlerEntryName, WebApplicationContext webApplicationContext) throws InstantiationException, IllegalAccessException {
// check
try {
CrawlerBuilder crawlerBuilder = (CrawlerBuilder) loadClass(crawlerEntryName).newInstance();
if (crawlerBuilder instanceof SpringContextAware) {
SpringContextAware springContextAware = (SpringContextAware) crawlerBuilder;
springContextAware.init4SpringContext(webApplicationContext);
}
// for spring bean auto injection
injectDependency(crawlerBuilder, true, webApplicationContext);
VSCrawler vsCrawler = crawlerBuilder.build();
return new CrawlerBean(vsCrawler, true, this);
} catch (ClassNotFoundException e) {
// this exception will not happen
}
return null;
}
Aggregations