package com.javaweb.spider.fast; import cn.hutool.core.io.IoUtil; import com.alibaba.fastjson.JSONObject; import com.javaweb.spider.config.SpiderConstants; import com.javaweb.spider.domain.SpiderException; import org.apache.commons.lang3.StringUtils; import java.io.InputStream; import java.nio.charset.Charset; /** * 通过读取json配置文件快速构建爬虫任务配置信息 */ public class FastConfigTemplate { public static JSONObject configTemplate; static { FastConfigTemplate configTemplate = new FastConfigTemplate(); configTemplate.init(); } public static String getConfig(String code) { if (configTemplate.containsKey(code)) { return configTemplate.getString(code); } throw new SpiderException("不存在的配置代码[" + code + "]!"); } private void init() { String configFileName = SpiderConstants.CONFIG_FILE_NAME; String config = null; try { InputStream inputStream = this.getClass().getResourceAsStream(configFileName); if (null == inputStream) { throw new SpiderException("请检查`src/main/resources`下是否存在" + configFileName); } config = IoUtil.read(inputStream, Charset.forName("UTF-8")); if (StringUtils.isEmpty(config)) { throw new SpiderException("HunterConfig内容为空:" + configFileName); } } catch (Exception e) { e.printStackTrace(); } try { configTemplate = JSONObject.parseObject(config); } catch (Exception e) { throw new SpiderException("HunterConfig配置文件格式错误"); } } }