package com.java110.web.core; import org.springframework.util.StringUtils; import java.io.*; import java.util.HashMap; import java.util.Map; /** * 静态资源文件加载器 * Created by wuxw on 2019/3/18. */ public class VueComponentTemplate extends PackageScanner{ /** * 默认扫描路径 */ public final static String DEFAULT_COMPONENT_PACKAGE_PATH = "components"; /** * js 文件 */ public final static String COMPONENT_JS = "js"; /** * css 文件 */ public final static String COMPONENT_CSS = "css"; /** * html 文件 */ public final static String COMPONENT_HTML = "html"; /** * HTML 文件缓存器 */ private final static Map componentTemplate = new HashMap<>(); /** * 初始化 组件信息 */ public static void initComponent(String scanPath){ VueComponentTemplate vueComponentTemplate = new VueComponentTemplate(); vueComponentTemplate.packageScanner(scanPath,COMPONENT_JS); vueComponentTemplate.packageScanner(scanPath,COMPONENT_HTML); vueComponentTemplate.packageScanner(scanPath,COMPONENT_CSS); } /** * 根据组件编码查询模板 * @param componentCode * @return */ public static String findTemplateByComponentCode(String componentCode) { if(componentTemplate.containsKey(componentCode)){ return componentTemplate.get(componentCode); } return null; } /** * 处理资源 * @param filePath */ protected void handleResource(String filePath){ Reader reader = null; String sb = ""; try{ InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(filePath); reader = new InputStreamReader(inputStream,"UTF-8"); int tempChar; StringBuffer b = new StringBuffer(); while ((tempChar = reader.read()) != -1) { b.append((char) tempChar); } sb = b.toString(); if(!StringUtils.isEmpty(sb)){ componentTemplate.put(filePath.substring(filePath.lastIndexOf(File.separator)+1,filePath.length()),sb); } }catch (IOException e){ e.printStackTrace(); }finally { if(reader != null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } }